在 **http://www.a.com/service.asmx 上创建一个Web服务,并从 **http://www.b.com
向其发送跨域ajax请求。检查 Firebug 或 Live HTTP Headers中的标题 ,或您想要的任何其他插件。
在请求标头中没有 X-Requested-With HTTP标头字段的踪迹。
但是,如果您从同一域向同一服务发送ajax请求(例如 **http://www.a.com/about** ),则会看到该标头字段。
为什么跨域Ajax请求省略了 X-Requested-With 标头字段?
更新: 我知道JSONP调用本质上不是AJAX调用。因此,您不会在JSONP调用中看到任何 X-Requested-With 标头字段。
如果您使用jQuery进行ajax请求,它将不会发送标头X-Requested-With(HTTP_X_REQUESTED_WITH)=
XMLHttpRequest,因为它是跨域的。但是有两种方法可以解决此问题并发送标头:
选项1)在ajax调用中手动设置标头:
$.ajax({
url: "http://your-url...",
headers: {'X-Requested-With': 'XMLHttpRequest'}
});
选项2)告诉jQuery不要使用跨域默认值,因此它将X-Requested-With标头保留在ajax请求中:
$.ajax({
url: "http://your-url...",
crossDomain: false
});
但是,服务器必须允许这些标头,然后服务器需要打印这些标头:
print "Access-Control-Allow-Origin: *\n";
print "Access-Control-Allow-Headers: X-Requested-With, Content-Type\n";
上面的第一行将避免错误 “ Access-Control-Allow-Origin不允许起源”。
第二行将避免错误 “ Access-Control-Allow-Headers不允许使用请求标头字段X-Requested-With”。
问题内容: 我正在使用angular 1.1.5,并且正在使用$ resource将XHR制作为REST服务,但似乎$ resource并未将标头附加为X- Requested-With和XMLHttpRequest, 是正常行为? 和我是否需要手动附加标题? 问题答案: 只需将其添加到您的应用中
问题内容: 我想知道是否有人尝试从jquery(或普通JS)发出的ajax请求中删除“ X-Requested-With”标头。可能吗? 第二部分:您是否知道Grease Monkey的ajax请求是否设置了此标头? 谢谢 标头看起来像这样: 问题答案: “第二部分:您是否知道Grease Monkey的ajax请求是否设置了此标头?” 不,Greasemonkey不会设置此标头(尽管您当然可以添
问题内容: jQuery和其他框架添加以下标头: X-Requested-With:XMLHttpRequest 为什么需要这个?为什么服务器要对AJAX请求与常规请求区别对待? 更新 :我刚刚找到了一个使用此标头的真实示例:https : //core.spreedly.com/manual/payment-methods/adding- with-js 。如果要求付款处理器不使用AJAX,则完
问题内容: 我正在使用PhoneGap和JavaScript来生成iPhone应用程序。是否可以发送跨域AJAX(POST)请求并将响应下载为HTML?(例如:登录yahoo邮件并提取新邮件) 问题答案: Cordova / PhoneGap允许将域列入白名单。只要您请求的服务器在白名单中即可。
我有一个问题,发送跨域会话cookie和搜索后,我得到了更困惑。最初,我在上有一个客户端(Next app),在上有一个api(Express)。发送和保存cookie在localhost上正常工作,但部署后,我遇到了一个问题,默认情况下将设置为。所以我把它改成了。但是我发现需要cookie集中的标志,所以我也改变了这一点。 将设置为后,将不再发送cookie。 如果设置了安全,并且您通过HTTP
问题内容: 我正在使用jQuery ajaxForms插件使ajax提交到我的CakePHP应用。 Cake的RequestHandler通过查看“ X-Requested- With”标头来检测ajax请求,但forms插件似乎并未对其进行设置。或jQuery在使用插件时未设置它。 我已经尝试了几件事, 在主要的onload函数中,我添加了: 在插件代码中,我在实际的ajax调用之前添加了此代码