Javascript在异步环境中发送post数据
所以我的问题是,我从另一台服务器获取数据,我试图将接收到的数据发送到同一个url,以便能够在PHP中检索数据。我用Javascript在异步环境中发送post数据,javascript,php,asynchronous,Javascript,Php,Asynchronous,所以我的问题是,我从另一台服务器获取数据,我试图将接收到的数据发送到同一个url,以便能够在PHP中检索数据。我用fetch()。每次我的xhr请求由于未知原因被浏览器取消时。这是我目前的代码: function generateCodes() { var someVAR = document.getElementById("length").value; var someResult = createDataPromise("someVAR=" + someVAR);
fetch()。每次我的xhr请求由于未知原因被浏览器取消时。这是我目前的代码:
function generateCodes()
{
var someVAR = document.getElementById("length").value;
var someResult = createDataPromise("someVAR=" + someVAR);
someResult.then((data) =>
{
var jsonData = JSON.stringify(data);
$.ajax(
{
url: "sameURL",
method: "post",
data: jsonData,
success: function(data)
{
console.log(data);
}
});
});
someResult.catch((error) =>
{
console.error("Server responded with error: " + error);
});
}
function createDataPromise(data)
{
return new Promise((resolve, reject) =>
{
const xhr = new XMLHttpRequest();
xhr.open("POST", "externalServer");
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = () => resolve(JSON.parse(xhr.responseText));
xhr.onerror = () => reject(xhr.statusText);
xhr.send(data);
});
}
是否有其他可能的解决方案来访问PHP中的javascript对象?(无法转换变量,因为javascript位于纯js文件中)浏览器可能因为CORS而阻止您的请求。将您的请求修改为符合CORS或确保远程响应包含访问控制允许源:
标题将解决此问题。
确保您的请求被认为是一个请求,这将消除它被飞行前请求拒绝的可能性,因为您只需要发送数据,而不需要在javascript中接收数据
谢谢您的评论,但它没有解决我的问题,仍然是相同的问题。Chrome仍然将我的xhr请求标记为已取消。Chrome在开发者工具的控制台和网络选项卡上到底说了什么?