1

我有这个功能

$.ajax({
    url: aurl,
    method: 'GET',
    beforeSend: function (req) { req.setRequestHeader('Authorization', auth); },
    cache: false,
    dataType: "json",
    error: function () {
        //error code
    },
    success: function (t) {
        //success code
    }
});

但是,参数:

  • 方法
  • 发送前
  • 缓存

被我的浏览器 FF3、IE8 和 Chrome 忽略。因此,无论放在那里都不会改变浏览器发送到给定 url 的请求,例如:不能将方法设置为“POST”,或者更重要的是,不能将授权参数作为请求的一部分放置,以便 HTTP 授权表单被处理。

另一个奇怪的行为是,除非 dataType:"json" 否则不会发送或接收请求或响应,如 FF3 中使用 LiveHTTPHeaders 所示。例如,如果数据类型:“xml”。

浏览器似乎正确处理了 URL。

有这些问题的人如何确保发送这些额外的参数?

4

1 回答 1

3

URL 是远程的还是本地的?

根据JQuery 文档

注意:所有远程(不在同一个域中)请求应指定为何GET'script'或是'jsonp'dataType因为它使用 DOM 脚本标签加载脚本)。需要XMLHttpRequest对象的 Ajax 选项不适用于这些请求。complete 和 success 函数在完成时调用,但不接收XHR对象;和函数不被调用beforeSenddataFilter

对于cache选项,默认值为:“ dataType' script'和' jsonp'的假”

于 2009-04-07T10:26:16.997 回答