Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在$.ajax中设置自定义标题_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 无法在$.ajax中设置自定义标题

Javascript 无法在$.ajax中设置自定义标题,javascript,jquery,ajax,Javascript,Jquery,Ajax,我决定尝试使用jQuery一次,因为它已经包含在页面中。我发现它有非常方便的$.ajax方法,允许您生成可读的ajax调用 我学会了如何拨打电话,因为我需要在Imgur授权。这是我的代码: $.ajax({ url: 'https://api.imgur.com/3/image', type: 'POST', headers: { Authorization: 'Client-ID ' + APP_ID, Accept: 'applicatio

我决定尝试使用jQuery一次,因为它已经包含在页面中。我发现它有非常方便的$.ajax方法,允许您生成可读的ajax调用

我学会了如何拨打电话,因为我需要在Imgur授权。这是我的代码:

  $.ajax({
    url: 'https://api.imgur.com/3/image',
    type: 'POST',
    headers: {
      Authorization: 'Client-ID ' + APP_ID,
      Accept: 'application/json'
    },
    data: {
      image: SavePage.getimgrc(),
      type: 'base64'
    },
    success: function(result) {
      var id = result.data.id;
      window.location = 'https://imgur.com/gallery/' + id;
    }
  });
好吧,不管它有多方便,它都不会像广告宣传的那样起作用:

POST /3/image HTTP/1.1
Host: api.imgur.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 20956
Origin: resource://jid0-gxjllfbcoax0lcltedfrekqdqpi-at-jetpack
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache

那么,它是坏了还是我把它搞砸了?

所以我终于找到了答案。问题是,尽管我以前有过这样的经历,我还是在使用jQuery。本机代码正常工作:

  var r = new XMLHttpRequest();
  r.open("POST", 'https://api.imgur.com/3/image');
  r.setRequestHeader("Authorization", 'Client-ID ' + APP_ID);
  r.setRequestHeader("Accept", 'application/json ');

  var data = new FormData();
  data.append("type", "base64");
  data.append("image", SavePage.getimgrc());

  r.send(data);

经验教训:jQuery包含在网站上并不意味着它会对您有所帮助。

旁注:让用户选项允许您要设置的标题-这是控制台的输出吗?是的,这是firebug输出。我不懂这些选项。为什么我不能设置任何要请求的头?@AlexeiLevenkov选项安全性过高确实存在一些问题。jQuery无法处理它,但如果我发送本机请求,一切都会正常。。。