我决定尝试使用jQuery一次,因为它已经包含在页面中。我发现它有非常方便的$.ajax
方法,允许您生成可读的Ajax调用。
我学习了如何add custom headers来电话,因为我需要在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
那么,它被打破了还是我搞砸了?
答案 0 :(得分:0)
所以我终于弄明白了。问题是,尽管我以前的经历,我使用的是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包含在网站上这一事实并不意味着它会对你有所帮助。