$ .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

下一篇: Backbone collection in collections