$ .ajax与类型:post和$ .post之间有什么区别?
考虑这个代码:
$.ajax({
url: "http://x.com/api/AnnouncementCategory/Save",
type: "Post",
success: function (data) {
//Grab our data from Ground Control
alert(data);
},
error: function (event) {
//If any errors occurred - detail them here
alert("Transmission failed. (An error has occurred)");
}
});
通过上面的代码,我们可以发布数据跨域一切都很好。 但是当我使用这个代码时:
$.post(' http://x.com/AnnouncementCategory/Save')
我得到这个错误:
选项http://x.com/AnnouncementCategory/Save请求标头字段X-Requested-With不被Access-Control-Allow-Headers所允许。 jquery-1.9.1.js:8526 XMLHttpRequest无法加载http://x.com/AnnouncementCategory/Save。 Access-Control-Allow-Headers不允许请求头字段X-Requested-With。
我看到了jquery源代码:
function ( url, data, callback, type ) {
// shift arguments if data argument was omitted
if ( jQuery.isFunction( data ) ) {
type = type || callback;
callback = data;
data = undefined;
}
return jQuery.ajax({
url: url,
type: method,
dataType: type,
data: data,
success: callback
});
}
jquery也在post中使用ajax。 **我知道我的错误是什么,只是想知道:** $ .ajax与类型:post和jquery post之间有什么区别?
jQuery的$.ajax
方法总是为任何跨域请求发送“x-requested-with”头 ,与$.post
不同。 你得到的错误是由于外部服务器处理外部请求的方式。 请看这里获取更多信息如何处理CORS(跨域资源共享 - 即跨域Ajax)。 在这里你也会发现类似的问题和解决方案。
您所问的问题的简单答案是,如文档中所述的$.ajax
的简写版本:
http://api.jquery.com/jQuery.post/
文件确实说明:
由于浏览器安全限制,大多数“Ajax”请求都受到相同的源策略的限制; 该请求无法成功从不同的域,子域或协议中检索数据。
你没有问的问题,但也许是你真正想问的是“为什么跨域请求为我使用带有简单POST类型的$ .ajax,而不是使用$ .post?”。 为此,您可能需要提供更多信息。
链接地址: http://www.djcxy.com/p/74713.html上一篇: What is the difference between $.ajax with type: post and $.post