xmlhttprequest cannot load No 'Access-Control-Allow-Origin' AJAX跨域请求解决方法

今天使用JQ的AJAX请求数据,出现了下面的错误

    $(".content").on('click', '.synData', function() { 
        var _this=$(this);
        var response=_this.prev().val();
        var idcard=_this.prev().prev().val();
        $.ajax({
            type:'POST',
            url:'http://v.juhe.cn/weather/index',
            data:{
                appkey:localStorage.appkey,
                token:"0d10e9d06ad1a7106d28841582d6fe1c",
                doc:"{}"
            },
            success:function(response){
                console.log(response);
            },
            error:function(){
                console.log();
            }
        });
    }); 
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 400.

这是一个跨域请求数据的Bug,需要加上

 dataType: 'jsonp',  
 crossDomain: true,  

最后得到的代码是

$.ajax({
    type:'POST',
    url:'http://v.juhe.cn/weather/index',
    data:{
        appkey:localStorage.appkey,
        token:"0d10e9d06ad1a7106d28841582d6fe1c",
        doc:"{}"
    },
    dataType: 'jsonp',  
    crossDomain: true,  
    success:function(response){
        console.log(response);
    },
    error:function(){
        console.log();
    }
});

我的就解决问题了

跨域访问是基于浏览器的同源策略所限制的,阻止了从一个源加载的文档或脚本来与来自另一个源的资源进行交互。为了实现跨域访问,可以通过设置服务器的响应头中的Access-Control-Allow-Origin字段来允许特定的域进行访问。 在使用Ajax进行跨域请求时,需要在服务器端设置响应头中的Access-Control-Allow-Origin字段。这个字段的值可以是具体的域名、通配符(*)或者null。 如果你想允许所有的域名进行跨域访问,可以将Access-Control-Allow-Origin字段设置为通配符*: ``` response.setHeader("Access-Control-Allow-Origin", "*"); ``` 如果你只想允许特定的域名进行跨域访问,可以将Access-Control-Allow-Origin字段设置为具体的域名: ``` response.setHeader("Access-Control-Allow-Origin", "https://www.example.com"); ``` 注意:在真实的生产环境中,应该根据具体需求来设置允许跨域访问的域名,不建议使用通配符*,因为这样可能存在安全风险。 另外,还可以设置其他的Access-Control-Allow-*字段来进一步控制跨域请求,例如Access-Control-Allow-Methods、Access-Control-Allow-Headers等。 需要注意的是,以上设置只是在服务器端进行了配置,还需要确保浏览器端的请求中包含了正确的跨域请求头信息,例如使用XMLHttpRequest对象时,需要设置withCredentials为true,以允许发送跨域请求的cookie。 希望以上信息对你有帮助!如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值