【发布时间】:2021-08-22 13:32:26
【问题描述】:
我想通过 POST 请求(使用 ajax)向我的服务器发送 json,但是每次尝试都被 CORS 阻止。阅读有关它被阻止的原因根本没有帮助。在某些时候,这里的一位 cmets 声称,不允许使用 contentType json 的 POST 请求(抱歉,我再也找不到相关的帖子了)。所以我测试了一些东西。我写了以下php文件:
<?php
header("Access-control-allow-origin: *");
header('Content-Type: application/json');
echo json_encode(["someVal" => true]);
?>
我在端口8081 上运行它。使用 contentType text/plain 发送 ajax POST 请求可以正常工作,但 application/json 会被 CORS 阻止。
相关的javascript:
$.ajax({
url: "http://localhost:8081/someapi.php",
contentType: "text/plain", //"application/json",
method: "POST",
crossDomain: true,
data: {val: "asd"},
success: function(data, status, xhr) {
console.log("success");
},
error: function(data, status, xhr) {
console.log("fail");
}
});
为什么会这样?如果不亲自测试,我可以从哪里获得这些信息?是否可以通过 POST 请求发送json?
【问题讨论】: