由于您无法在JSONP调用上应用自定义标头,因此如何发出跨域请求并使用jQuery应用自定义标头?
我基本上是想使用jQuery访问google文档,并且需要传递身份验证令牌:
var token = "my-auth-token";
$.ajax({
url: "http://docs.google.com/feeds/documents/private/full?max-results=1&alt=json",
dataType: 'json',
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "GoogleLogin auth=" + token);
},
success: function(data, textStatus, XMLHttpRequest) {
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
}
});
注意:这样做的目的是 完全 绕开应用程序层。使用ruby连接到Google Data API很简单,但是在服务器端始终解析提要会占用大量资源。
您可以使用Google的JavaScript客户端库来查询Docs
API。尽管它没有专门为Docs提供的帮助程序,但仍可以与大多数API(包括Docs)一起使用。请参阅由Google员工撰写的此博客文章,其中显示了一个有效的示例。
如果您遇到无限的授权循环,请参阅Google网上论坛的相关问题。基本上,cookie的设置速度不够快,因此当JavaScript客户端库检查时,它什么也没找到,并重定向到OAuth授权页面。一种解决方案是在检查完成之前增加一小段延迟,或者使用启动授权的登录按钮,而不是在页面加载时进行授权。
您还需要将任何图像添加到同一域中的页面。只要在DOM中,就可以使用CSS将其隐藏。
使用以上博客文章中的示例,我能够仅使用JavaScript检索我的文档列表。这是我用来摆脱无限授权循环的修改后的初始化函数:
function initialize() {
var scope = 'http://docs.google.com/feeds/';
if (google.accounts.user.checkLogin(scope)) {
var service = new google.gdata.client.GoogleService('writely', 'DocList-App-v1.0');
service.getFeed(scope + 'documents/private/full/', handleFeed, handleError);
} else {
var loginButton = $("<button>Click here to login</button>");
loginButton.click(function() {
var token = google.accounts.user.login(scope); // can ignore returned token
});
$("body").append(loginButton);
}
};
问题内容: 我已经在互联网上进行了一些研究,但没有设法获得有关该主题的完整图片。任何人都可以暂时解决这个问题吗? 这是我到目前为止发现的: 可以使用jsonp进行跨域调用。禁止在jsonp调用中更改标头 如果服务器允许,则可以使用json进行跨域调用。 这就是我想要做的: 这是正在发生的事情: 当myJSonServer在同一域上时,完全没有问题 当myJSonServer在另一个域上时,将发送请
我在网上做了一些研究,但我没有设法得到关于这个主题的完整画面。有人能帮助解决这个问题吗? 这是我目前发现的: 可以使用jsonp进行跨域调用。在jsonp调用中不允许更改头 如果服务器允许,可以使用json进行跨域调用。 这就是我想做的: 这就是正在发生的事情: 当myJSonServer在同一个域上时,完全没有问题 当myJSonServer在另一个域上时,请求被发送,但是没有承载头 这个承载头
问题内容: 我到处环顾四周,但找不到确切的答案。 我需要能够执行AJAX POST并发送自定义标头。我对客户端脚本和服务器端服务都具有完全控制权,因此,如果需要对任何一方进行任何调整才能进行此工作,则可以进行这些更改。 我目前正在使用jQuery,但是,如果jQuery无法做到这一点,并且我需要使用另一个完全没有问题的库。理想情况下,我宁愿坚持使用单个库(jQuery),但如果能解决我的问题,我很
问题内容: 谁能告诉我如何在跨域jsonp调用的jquery中使用ajax调用添加自定义标头。我正在使用ajax跨域调用的html页面中调用web服务。为此使用jsonp,现在我必须在标头中发送一些参数,因此我如何设置标题。 问题答案: 恐怕这是不可能的。jQuery使用JSONP标签,并且您知道,您无法使用此标签设置自定义标头。作为一种可能的解决方法,您可以在域上编写服务器端脚本,该脚本将充当域
本文向大家介绍vue2.0设置proxyTable使用axios进行跨域请求的方法,包括了vue2.0设置proxyTable使用axios进行跨域请求的方法的使用技巧和注意事项,需要的朋友参考一下 这里请求的是知乎日报的api,由@izzyleung这位大神提供的,这是github地址。 在vue-cli构建的项目中先安装axios 这里暂不考虑用vuex封装的方式,只讲在当前组件中直接使用。
问题内容: 我正在使用一个API,该API需要额外的安全性信息以及HTTP请求作为标头中的元信息发送。是否可以在XMLHttpRequest中设置它们? 问题答案: 是的,请参阅2012年12月6日当前XMLHttpRequest工作草案的“ setRequestHeader()方法” 。