当前位置: 首页 > 知识库问答 >
问题:

无法使用 ajax 调用 servlet

路思源
2023-03-14

我试图在点击事件上使用ajax调用servlet。从那个servlet,我称之为谷歌身份验证endpoint。我尝试将标头设置为我正在调用的servlet,但我无法摆脱此错误

XMLHttpRequest 无法加载 https://accounts.google.com/o/oauth2/auth?client_id=2536-a...nid 个人资料电子邮件

这是代码

$.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");

知道我错过了什么吗?谢谢你的帮助。

共有2个答案

易祖鹤
2023-03-14

AJAX通常不允许从它调用其他域API。这称为CSRF攻击。您的解决方案是,将数据发布到服务器servlet,并在后端(servlet)中执行所需的操作。

郑嘉年
2023-03-14

这是一个标准的安全限制:JS不能向自己的域以外的域发出请求。因此,您在localhost上有一个应用程序,accounts.google.com 对应用程序进行Ajax调用 - 默认情况下不允许。

请参阅此问题

 类似资料:
  • 问题内容: 我有一个页面test.php,其中包含以下代码: 我有一个页面,SetCookie.php,其中包含以下代码: 当单击test.php的按钮时,我使用XMLHttpRequest来调用我的SetCookie.php页面。该页面将执行,因为如果我向其添加回显,则会在xmlhttp响应中得到它。但是,TestCookie似乎没有设置。 如果在text.php中,我执行与SetCookie.

  • 问题内容: 我是jqGrid的新手,但发现很难按照jqGrid文档进行操作 我无法弄清楚设置JQGrid时如何调用WebMethod。我已经成功进行了Ajax调用以获取数据,然后使用本地数据设置JQGrid。我认为这是设置过程中的一个额外步骤,我应该能够使用url属性提供webmethod的路径。 editurl属性是相同的方式。我从未真正收到过发布到服务器的帖子。 原始码 尝试了JQGrid设置

  • 问题内容: 我正在尝试使用基本的chrome扩展程序,它像这样 这适用于清单版本1,但是当我将其更改为v2时,出现以下错误。我将不胜感激:) 拒绝加载脚本“ http://sample.com”,因为它违反了以下内容安全策略指令:“ script-src’self’chrome- extension-resource:”。 问题答案: 您应该阅读有关内容安全政策的信息 使用以下命令完成清单文件:

  • 问题内容: $(document).ready(function(){$ .ajax({url:“ http://gdata.youtube.com/feeds/api/users/zdf/playlists?v=2 ”,键入:“ GET”,成功:function(msg){console.log(msg);}});}); 我收到此错误“ XMLHttpRequest无法加载http://gdat

  • 问题内容: 我在aspx上有一个asp按钮: 如您所见,我正在调用一个使用AJAX调用C#方法的javascript函数。我这样做: 问题是,单击按钮时,我总是收到错误消息。我做错什么了吗? 编辑:C#方法。我已经设置了一个断点,以查看是否调用了该方法,但显然没有。 问题答案: 您的方法必须声明为,并用修饰。因此,您的方法应为: 编辑!!! 我看你用一些控制在你的代码(如,)。完成方法后,您将无法

  • 问题内容: 我有一个表格: 和一个函数PrepareOrder 问题是在新的ipad(Safari)上未调用操作。在桌面浏览器上,它可以正常工作。控制台中没有错误。我尝试在之后添加警报: 像那样: 并且还给我。为什么?如果不调用。我还将日志记录添加到操作中,并且没有输出字符串。 问题答案: Safari和/或Ipad支持非常强大的缓存。我的应用程序中也遇到了同样的问题。尝试向您的控制器(甚至基本控