您的位置:首页 > 其它

Ajax提交跨域请求

2017-05-11 11:23 411 查看
当Ajax提交的请求为跨域的时候会提示错误:已拦截跨源请求:同源策略禁止读取位于 http://****** 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。解决方法一:使用jsonp进行请求  $(document).ready(function () {            $.ajax({                type: "GET",//请求方式:GET                  async: false,//是否异步:否                  cache: false,//是否缓存:否                  timeout: 200,//请求超时响应:200s                  url: "http://****",//请求url                  data: "",//请求参数                  dataType: "jsonp",//数据类型:jsonp                  crossDomain: true,//是否跨域:是                  jsonp: "callback",//callback或者jsoncallback或者jsonpcallback;传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)                  jsonpCallback: "callback",//自定义jsonp回调函数名称,可以随意起名,或者根据项目规范命名,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据;若自定义的函数名是js中的function会执行下面函数function                  complete: function () {                    //hideLoadingMsg(); // 数据获取完成后,需要做的事,此为隐藏读取数据的滚动条。                  },                success: function (json) {//请求成功:此处传回来的数据为:my({'msg': 'OK', 'code': 0, 'data': {'appinstall': '2000'}})                                    },                error: function () {//请求异常:网络断开或者                                    }            });但是要注意服务器返回的值需要特定的格式 
my({'msg': 'OK', 'code': 0, 'data': {'appinstall': '2000'}})
不然会提示无法解析的错误.json与jsonp的区别    点击打开链接方法二:在服务器端口的返回头中加入 Access-Control-Allow-Origin $respArray=$this->get('promotion_service')->getcity();$response = new Response ( json_encode ( $respArray ), 200 );$response->headers->set ("Access-Control-Allow-Origin","*");//*代表允许所有的请求,可以换为制定的地址$response->headers->set ( 'Content-Type', 'application/json' );

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Ajax 跨域