【问题标题】:Not able to send header with xhrfield无法使用 xhrfield 发送标头
【发布时间】:2016-07-15 17:31:47
【问题描述】:

我正在尝试获取 Flipkart api 数据。像这样,但我无法用 xhrfield 发送 heder 这是我的代码:

$.ajax({
    type: 'GET',
    url:'https://affiliate-api.flipkart.net/affiliate/search/json?query=iPhone+mobiles&resultCount=3',
    crossDomain: true,
//    dataType: 'JSONP',
    /*xhrFields: {
            withCredentials: true
        },*/
  //    contentType: 'application/json; charset=utf-8',

      beforeSend : function(xhr) { 
       xhr.withCredentials = true;        
        xhr.setRequestHeader('Fk-Affiliate-Id', 'myid');
        xhr.setRequestHeader('Fk-Affiliate-Token', 'mytoken');
      },
   /*   headers: {
        'Access-Control-Allow-Origin':'*',
        'Fk-Affiliate-Id': 'myid',
        'Fk-Affiliate-Token': 'mytoken',
        'Content-Type': 'application/x-www-form-urlencoded'
      },*/

    success: function(data){ ......
}
});

正如您所看到的评论,我已经尝试了两种方法,但无法使用 xhrfield 发送标头。如果我评论 xhrfield 标题将被发送

【问题讨论】:

  • 您遇到了什么错误。两者都是发送标头的正确方法。 myid 和 mytoken 也应该是对象而不是变量,并且不应包含在引号中。
  • 401,无效的标头,Fk-Affiliate-Id 和 Fk-Affiliate-Token 未在请求标头中发送
  • JSONP 请求无法设置标头。

标签: javascript jquery ajax flipkart-api


【解决方案1】:

您不能发送带有 JSONP 请求的标头,因为它所做的只是为页面设置一个脚本标记。

JSONP 请求包括将脚本标记附加到页面。它在脚本执行时向脚本侦听的 URL 添加一个回调参数。无法将标头添加到外部脚本。

站点需要支持 JSON 请求,以便 COR 发送标头。

【讨论】:

  • // contentType:"application/jsonp", 我应该这样做
  • 不可能....脚本标签不能设置标题。它没有发出 XMLHttpRequest。
  • 那我如何发送标头,使用 CORS
  • 将其更改为 JSON 请求。我刚刚注意到您正在请求一个甚至不是 JSONP 的 .json 文件,所以您尝试做的事情看起来很大。
  • 更新我的问题仍然无法发送标题。可以寄吗?
猜你喜欢
  • 2016-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多