保持在“(api url)”(localserver)'的XMLHTTPREQUEST'已被CORS策略[重复]

问题描述 投票:0回答:0
Https://api.nasa.gov/planetary/apod
以及Dog api api
https://dog.ceo.ceo.ceo/api/api/api/breeds/image/image/random-访问本地和远程服务器上,

但是,当我尝试在由私人机构开发的API中“获取”时,它在邮递员中运行良好,但在我的本地服务器上不行。 它不断显示“(api url)”(localserver)'的XMLHTTPREQUEST'已被CORS策略所阻止。在请求的资源上没有“访问控制”标头。

htmldoc:

<!DOCTYPE html> <html> <head> <title>API</title> </head> <body> <div> PRINT </div> <script src="https://code.jquery.com/jquery-3.6.0.js" integrity="sha256-H+K7U5CnXl1h5ywQfKtSj8PCmoN9aaq30gDh27Xc0jk=" crossorigin="anonymous"></script> <script src="./script.js"></script> </body> </html> ajax请求:

$.ajax({ url: "api", method: "GET", data: { "Key": "(myapikey)", "UserID": "userid", "Password": "pass", "AwbNo": "someNumber" }, success: function(data){ console.log(data); }, }).fail(function(){ console.log("error in script"); });

i尝试了解决方案,例如包括允许访问 - 控制 - 原始标头,但仍显示出相同的误差。请帮助

Edit1:

i在我的Ajax代码中添加了以下两行:

crossDomain: true, dataType: 'jsonp'

现在显示以下错误:

Cross-Origin读取阻塞(CORB)阻止了跨原始响应“(API请求)”,使用MIME类型应用程序/JSON。有关更多详细信息

Edit2:

在AJAX代码中添加:

header:{ "Access-Control-Allow-Origin":"*" }
以显示相同的错误

网络浏览器中的cors机械设备将不会让您从API中获取资源,除非API会通过带有域值或Wildcard(*)的标题访问控制响应给您响应。

因此,您必须更改API响应才能返回此标头

Access-Controll-Allow-Origin=<protocol://your_domain:port>

或如果您无法访问更改API,则可以编写简单的代理(简单REST API),以将请求从浏览器重定向到实际端点。


javascript jquery ajax postman
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.