我想在点击事件中使用ajax调用servlet。从这个servlet我打电话给谷歌验证终点。我试着设置标题,我打电话servlet的,但我的没能摆脱这种错误无法使用ajax调用servlet
了XMLHttpRequest无法加载 https://accounts.google.com/o/oauth2/auth?client_id=2536-a ...... NID%20profile%20email &状态= F1BFD3804 &显示=弹出。 请求的 资源上没有“Access-Control-Allow-Origin”标题。原因'http://localhost:8080'因此不允许 访问。
下面是代码
$.ajax({
type: "GET",
url: "/url-for-servlet",
dataType: "jsonp",
contentType: 'application/json',
error: function (jqXHR, textStatus, errorThrown) {
console.log(jqXHR)
},
success: function (data) {
alert("yippy");
console.log(data);
}
});
上的servlet我加入到反应
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.addHeader("Access-Control-Max-Age", "3600");
response.addHeader("Access-Control-Allow-Headers", "x-requested-with");
任何想法,我在这里失踪?谢谢您的帮助。
这些标题需要由目标网址(因此,accounts.google.com)设置。无法做到应该已经暗示你不允许用目标服务来做这些事情。寻找一个不同的解决方案,通常基于他们自己的API文档。然而,你的问题很奇怪,因为错误不是迄今为止发布的代码造成的。也许你过分简化/省略了太多? – BalusC