javascript - 解决 cors 问题后,虚拟机上关于 ajax 的帖子返回错误 500,请求失败
问题描述
我正在尝试从运行 virtualbox windows 7 的虚拟机在服务器上进行 POST。并且服务器在同一台机器上本地运行,但在 linux 上。最初它有 CORS 问题,然后我从https://chrome.google.com/webstore/detail/allow-control-allow-origi/下载了 CORS chrome 扩展 'Allow-Control-Allow-Origin:', '*' nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=pt-BR。
下载 chrome 扩展后,cors 问题停止了。但现在出现在我面前的是消息:POST http://servidor.hanbai:8081/api/aa/v1/pedidos 500 (Request failed.)
除此之外,唯一的消息是警告说:Cross-Origin Read Blocking (CORB) blocks cross-origin response http://servidor.hanbai:8081/api/aa/v1/pedidos with MIME type application/vnd.sun。 wadl+xml。有关详细信息,请参阅https://www.chromestatus.com/feature/5629709824032768 。
但是当我尝试使用 POSTMAN 时,没有出现任何问题。可能是什么?
function enviaParaHanbai(pedido) {
console.log(pedido);
let urlPedidoCriado;
$.ajax({
type: "POST",
url: "http://servidor.hanbai:8081/api/aa/v1/pedidos",
data: JSON.stringify(pedido),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
success: function(data, status, request) {
console.log(data);
console.log(status);
console.log(request);
urlPedidoCriado = request.getResponseHeader('location');
console.log(urlPedidoCriado);
const regex = /(?<=pedidos\/).*$/gi;
let match = regex.exec(urlPedidoCriado);
let idPedidoCriado = match[0];
console.log(idPedidoCriado);
renderizaDivPedidoRealizadoComSucesso(idPedidoCriado);
},
error: function (data, status, request) {
console.log(data);
console.log(request);
console.log(status);
console.log("erro no envio do pedido para o hanbai");
}
});
}
解决方案
而不是 Chrome 扩展来启用 CORS,使用本指南来帮助您将标头添加到您的服务器 ( https://www.w3.org/wiki/CORS_Enabled )。至于错误,请尝试dataType
在您的 ajax 调用中添加参数并指定数据。除此之外,安装 Fiddler 并调试它。希望有帮助
推荐阅读
- python - Pygame 在 IDLE 中工作,但在 Spyder 中我得到 AttributeError
- javascript - Swiper js自动播放滑块
- mysql - MYSQL 不允许从函数返回结果集
- wavesplatform - 如果用户刷新页面,如何防止 Wave Signer 自动注销?
- c++ - C ++:具有相同命名方法的子类的语义问题
- c++ - 将矩阵与二维数组相乘,错误表达式必须具有指向对象类型
- javascript - 在 SELECT 语句中使用列名来包含列词汇表定义
- python - 使用 psycopg2 和 BeautifulSoup 将图像刮到 postgres BLOB
- python - Tensorflow2.1中关于混合精度的问题
- css - 在 IE11 的表格中使用 flexbox 元素