【问题标题】:JQuery AJAX Header Authorization POSTJQuery AJAX 标头授权 POST
【发布时间】:2014-06-26 18:35:50
【问题描述】:

我必须将 XML 发送到带有 Authorization header 的服务器,并且它必须POST。 p>

现在我有两个选择。

  1. 当我使用 dataType = 'jsonp' 时,它总是变成 GET 而不是 POST。我的数据也必须是 XML。

            var request = {};
            request.type = 'POST';
            request.contentType = 'application/jsonp; charset=utf-8';
            request.dataType = 'jsonp';
            request.data = JSON.stringify(this.data);
            request.url = this.url;
            request.beforeSend = function (xhr) {
                xhr.setRequestHeader("Authorization", "Basic ");
            };
    
            request.processData = false;
            $.ajax(request);
    
  2. 但是没有 dataType = 'jsonp' 我根本没有 Authentication 标头。以下代码仅适用于 Chrome。

        var request = {};
        request.type = 'POST';
        request.contentType = 'text/xml';
        request.dataType = 'xml';
        request.data = this.data;
        request.url = this.url;
        request.beforeSend = function (xhr) {
            xhr.setRequestHeader("Authorization", "Basic ");
        };
    
        request.processData = false;
        $.ajax(request);
    

是的,我知道 StackOverflow 上有很多类似的问题,我已经阅读了几十个,但仍然没有找到正确的答案。

【问题讨论】:

  • 那么你试过什么不起作用,贴一些代码!

标签: javascript jquery ajax post


【解决方案1】:

修改beforeSend方法中的headers,例如:

$.ajax({
    url: url,
    method: "POST",
    dataType: "json",
    crossDomain: true,
    contentType: "application/json; charset=utf-8",
    data: JSON.stringify(data),
    cache: false,
    beforeSend: function (xhr) {
        /* Authorization header */
        xhr.setRequestHeader("Authorization", "Basic " + Utils.getUsernamePassword());
        xhr.setRequestHeader("X-Mobile", "false");
    },
    success: function (data) {

    },
    error: function (jqXHR, textStatus, errorThrown) {

    }
});

【讨论】:

  • 是的,我已经这样做了,但是当我设置 dataType = "json" 时,它变成了 GET。我做错了什么?
  • 我编辑了答案并将 ajax 请求中的 type 更改为 method。根据jQuery.ajax documentationtypemethod 的别名。如果您使用的是 1.9.0 之前的 jQuery 版本,则应该使用 type
  • 有没有办法使用$.post()进行基本授权?
猜你喜欢
  • 1970-01-01
  • 2020-03-28
  • 1970-01-01
  • 2012-04-24
  • 1970-01-01
  • 2016-09-10
  • 2014-08-18
  • 1970-01-01
  • 2017-11-09
相关资源
最近更新 更多