没有xhr头的jquery中的正常http请求

时间:2014-07-04 14:36:29

标签: javascript jquery ajax xmlhttprequest

我想用这些标题(或类似的东西)发送类似ajax的请求:

GET example.com/ajaxapi/article/1 HTTP/1.1
Host: localhost
Accept: application/hal+json
Cache-Control: no-cache

重点是在标题中没有 X-Requested-With:XMLHttpRequest 的情况下这样做。

$ .ajax(),$。get(),...都为此添加默认的xhr标题。

2 个答案:

答案 0 :(得分:0)

您可以使用beforeSend函数修改标题,该函数是ajax方法的设置对象的属性。

documentation开始,对beforeSend的描述:

  

一个预请求回调函数,可用于在发送之前修改jqXHR(在jQuery 1.4.x,XMLHTTPRequest)对象中。 使用此选项设置自定义标题等.jqXHR和设置对象作为参数传递。这是一个Ajax事件。在beforeSend函数中返回false将取消请求。从jQuery 1.5开始,无论请求的类型如何,都将调用beforeSend选项。

示例:

$.ajax('/yoururl', {
    beforeSend: function(jqXHR, settings) {
        // stuff goes here
    }
});

答案 1 :(得分:-1)

回答我自己的问题,如果它可以帮助其他人。

$.ajax({
    url:   url,
    crossDomain: true
});

crossDomain选项完成了这一操作并删除了XMLHttpRequest标头。