相关疑难解决方法(0)

CORS - 如何"预检"httprequest?

我正在尝试向WCF服务(我拥有)进行跨域HTTP请求.我已经阅读了几种处理跨域脚本限制的技术.因为我的服务必须同时兼顾GET和POST请求,所以我无法实现一些动态脚本标记,其src是GET请求的URL.由于我可以自由地在服务器上进行更改,因此我开始尝试实施一种解决方法,该方法涉及配置服务器响应,以包含"Access-Control-Allow-Origin"标头和带有OPTIONS请求的"预检"请求.我从这篇文章中得到了一个想法:让CORS正常工作

在服务器端,我的Web方法是在HTTP响应中添加"Access-Control-Allow-Origin:*".我现在可以看到响应包含此标题.我的问题是:我如何"预检"一个请求(OPTIONS)?我正在使用jQuery.getJSON来发出GET请求,但浏览器会立即取消臭名昭着的请求:

Access-Control-Allow-Origin不允许使用origin http:// localhost

有人熟悉这种CORS技术吗?需要在客户端进行哪些更改以预检我的请求?

谢谢!

javascript wcf jquery cors

89
推荐指数
1
解决办法
17万
查看次数

如何使用CORS Pre-flight请求处理自定义标头?AJAX - CodeIgniter

我正在使用CodeIgniter和Restfull API来构建我的Web服务器私有API.

我已经开始根据我正在使用的一些框架的要求使用CORS.

使用Jquery,我可以看到2个请求被发送,第一个作为OPTION类型 - 正如预期的那样 - 但是没有我的自定义头(X-API-KEY用于安全性,默认情况下在CodeIgniter Restful API中).

然后,我收到无效的API密钥错误消息,如图所示.然后在正确的标头发送正确的请求之后,同时,第一个请求触发.fail()函数来处理错误.

First Pre Flight调用触发无效的API KEY,因为我们无法在此调用中传递X-API-KEY自定义标头 正常通话工作正常

处理该场景的最佳做法是什么?我希望我的ajax请求能够顺利处理第一个预检OPTION请求,而不会像我今天那样在我的应用程序上触发错误,然后根据CORS的工作方式使用自定义标头进行正常的GET调用并执行成功调用,而不会触发错误在第一次预检请求中打电话?

triggerFriendsWall: function() {
        //Get location
            var options = {
                timeout: 30000,
                enableHighAccuracy: true,
                maximumAge: 90000
            };

            //We need to check if user has disabled geolocation, in which case it makes the app crashes ! (from Cordova.js 1097)
            var position = JSON.parse(localStorage.getItem("position"));

            if (position == "" || position == null || position == "null" || typeof position == "undefined" ) {
                // In this case we have never set …
Run Code Online (Sandbox Code Playgroud)

javascript php ajax jquery codeigniter

6
推荐指数
1
解决办法
6619
查看次数

标签 统计

javascript ×2

jquery ×2

ajax ×1

codeigniter ×1

cors ×1

php ×1

wcf ×1