可以't在$.ajax中设置自定义标头
Can't set custom headers in $.ajax
我决定尝试使用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并不意味着它会对您有所帮助。
相关文章:
- 如何设置自定义垂直滑块Jquery的动画
- 如何在ExtJs4应用程序上为视图、存储和模型设置自定义文件夹名称
- Alfresco JavaScript,当文件上传到网站时,设置自定义类型属性
- 如何使用传单为传单实时插件设置自定义图标
- 正在设置自定义属性名称
- 设置自定义覆盖和多边形的任意z索引顺序
- 在条件中的几个时间行中设置自定义css效果后,从Jquery时间选择器显示时间
- 从ngInit在AngularJS中全局设置自定义HTTP头
- 使用 jQuery 设置自定义属性和值
- 谷歌分析设置自定义维度值
- 如果未选中,则 js 复选框不设置自定义值
- 使用 JavaScript 设置自定义属性
- node_module 设置自定义版本
- 如何在只读输入字段上设置自定义有效性
- JQPLOT 根据标签名称为饼图设置自定义颜色
- 角度设置自定义标头始终包装在访问控制请求标头中
- 在 Ajax 调用中设置自定义内容类型响应标头
- 通用分析中用于设置自定义维度的操作顺序
- 如何设置自定义对象属性以在 Angular 类型提前中进行筛选
- 如何在 php 中设置自定义月份开始日期和结束日期