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

403对JSONP请求的禁止响应

关翰
2023-03-14

第一次投递到stackoverflow。

我只是试图使用jQuery从json url获取数据。第一个问题是跨源请求块,即使库应该停止这个问题,像ajax跨源js(抱歉不提供这个链接,我太新了,在这里有超过2个链接),我仍然没有运气,一样交叉原点错误。

所以我搬到了JSONP。

url = "http://take-home-test.herokuapp.com/api/v1/works.json?callback=?"
$.ajaxSetup({ dataType: "jsonp" });
$.getJSON(url, function(json) {
    console.log(data);
});

(我也尝试过JSONP请求的AJAX语法)

现在我可以在网络选项卡中看到数据正在返回,但状态是403禁止。chrome网络选项卡中响应的图片

我使用超文本传输协议-server,您可以安装npm,以避免chrome与json MIME类型有问题。类似的堆栈溢出回答说,我需要集成jsonp支持我的框架,但他们指的是sinatra的Ruby。为什么JSONP调用返回禁止403然而URL可以在浏览器中访问
所以我尝试了npmjs jsonpClient,仍然得到了禁止的响应。

有什么想法吗?这花了我一天多的时间。

共有2个答案

韶景曜
2023-03-14

这是我发现的最简单的代码版本,感谢Dave Meas:

url = http://take-home-test.herokuapp.com/api/v1/works.json"
new_url = "http://crossorigin.me/" + url;
$.getJSON(new_url, function(json) {
console.log(json);
});
狄英哲
2023-03-14

问题:服务器(http://take-home-test.herokuapp.com)没有设置访问-控制-允许-起源头。如果可以访问服务器,请使用--cors选项启动服务器。也就是:节点bin/超文本传输协议-server--cors...这将通过访问-控制-允许-起源头启用CORS,并应解决您的问题。

如果您没有访问服务器的权限。这里有一个快速的解决方案:通过http://cors.io.代理您的请求。

url = 'http://take-home-test.herokuapp.com/api/v1/works.json?callback=?';
new_url = "http://cors.io/?u=" + encodeURIComponent( url );

$.ajaxSetup({ dataType: "jsonp" });
$.getJSON(new_url, function(json) {
    console.log(json);
});

JSFiddle:http://jsfiddle.net/davemeas/4rt3s7ta/1/(注意:您必须将jQuery添加到该fiddle:)

 类似资料:
  • 问题内容: 我一直在尝试向服务器发布一个简单的帖子,但是在预检调用中总是失败。对于我的一生,我不知道发生了什么,所有CORS标头在服务器上似乎都是正确的。 该请求确实是从本地主机发出的,但我认为应该由本地来处理。 控制台中显示的错误是: 和 任何帮助/建议表示赞赏。 问题答案: 403响应状态表示服务器后端没有配置为处理请求,而不仅仅是CORS预检请求是一个普遍问题。 服务器必须以2xx成功状态(

  • 每次尝试从数据库中获取用户信息时,我都会收到一个错误。关于我下面的代码,每次我按下Ajax测试按钮尝试请求时,它都无法运行并向我发出警报,但控制台中也会向我发出403禁止的错误。我不确定这是否与Spring security有关? 用户JSP页面: 用户控制器类:

  • 对localhost的Ajax请求返回403错误。然而,当我更改controller requestMethod以获取并在浏览器上打开请求“url”时,它会显示从服务器返回的json数据。我希望使用这些数据填充一个下拉列表。请帮帮我。我正在使用spring security 4.0和spring MVC框架。CSRF未禁用。此外,该url在Spring得到保护。 我在这里查看了相关问题,但没有找到

  • 问题内容: 每当我尝试从数据库中获取用户信息时,都会收到-error 消息。关于下面的代码,每当我尝试通过按Ajax测试按钮尝试请求时,它都无法运行并给我发出警报,但是在控制台中也给我一个-error。我不确定是否与Spring安全性有关? 用户JSP页面: 用户控制器类: 问题答案: 它通常是由Spring默认的CSRF保护引起的。 例如,如果你使用JS代码中的DELETE HTTP请求,则还需

  • 所以我有java的后端和Angular的前端。当我向我的spring boot restendpoint发送删除请求时,我得到了403代码。Angular发送第一个选项请求,并返回403,因此不会发生删除请求。另外,获取和发布工作正常。 我试过禁用csrf,但没有成功。我也在我的浏览器中使用它,所以我不应该禁用它。在soapUI中,DELETE可以正常工作。 这是我的安全配置类 我想做这个删除请求

  • 我是一个新手。我试图通过反向工程请求和刮取数据来获取flipkart卖家的产品数据。我尝试的URL是:https://www.flipkart.com/sellers?pid=hsaffjwt2wuyhhhx,其中包含特定产品的销售商列表。 当我在Google chrome中打开network选项卡时,我可以看到它向https://www.flipkart.com/api/3/page/dynam