在这里,当我尝试在浏览器控制台中打印响应时。它显示了此错误
跨域读取阻止(CORB)阻止了MIME类型为text / html的跨域响应https://script.google.com/macros/s/AKfycbwmqG55tt2d2FcT_WQ3WjCSKmtyFpkOcdprSITn45-4UgVJnzp9/exec?url=http://35.230.52.177:8095/OneSoftTracking/rest/tracking/consignment/AE101632?hostname=aastha-enterprises.com&callback=jQuery1124008693115102408444_1561964934754&_=1561964934755。有关更多详细信息,请参见https://www.chromestatus.com/feature/5629709824032768。
While when I get data in Postman like:
This warning or error showing :
这是我的代码:
var module = {
x: 42,
getX: function() {
return this.x;
}
}
var boundGetX = module.getX.bind(module);
console.log(boundGetX());
// output: 42
答案 0 :(得分:0)
您尚未向我们显示您的真实代码。
错误消息清楚地显示了查询字符串中的callback
,它不在您的URL中,因此不应添加,因为您在jQuery ajax配置中没有说dataType: 'jsonp'
。>
您的实际代码已配置为使用JSONP。
JSONP响应是一个JavaScript程序(特别是一个调用带有一组参数的单个函数的程序)。您从服务器获得的响应是一个HTML文档(内容类型为text/html
而不是application/javascript
)。
CORB错误是浏览器告诉您响应是HTML而不是JSONP,因此它拒绝尝试执行。
邮递员的屏幕快照显示您期望得到JSON(仍然不是JSONP)响应(但是您都没有得到)。
您需要:
进一步阅读:
关于代码的注释:
async: true,
这是默认设置,请摆脱它
crossDomain: true,
这是跨源请求的默认设置,请摆脱它。
crossOrigin: true,
这是跨源请求的默认设置,请摆脱它。
method: "GET",
这是默认设置,请摆脱它
"Content-Type": "application/json",
您正在发出GET请求。没有用于描述其类型的请求正文。这是无稽之谈。摆脱它。
"Access-Control-Allow-Origin": "*",
'Access-Control-Allow-Methods': 'GET',
'Access-Control-Allow-Credentials': true,
这些是响应标头,而不是请求标头。把它们放在请求上是胡说八道。摆脱它们。
"Accept": "*/*",
几乎可以肯定默认是可以的。您可能不需要覆盖它。
"Cache-Control": "no-cache",
主要配置选项“缓存”可能是比显式设置标头更好的选择。
"Postman-Token": "bea2b074-eefc-473e-84d7-b680a07ed7df,dafa4f5c-94af-4efe-967f-75a9fe185a1e",
服务器关心此问题的可能性很小。您可能可以摆脱它。