Javascript 从RESTAPI读取JSON响应总是返回空文本

Javascript 从RESTAPI读取JSON响应总是返回空文本,javascript,json,rest,api,Javascript,Json,Rest,Api,我希望一切都很好,如果你能帮助我或重新引导我到一个类似的老职位,因为我找不到一个,我感谢你 我正在尝试启动一个RESTAPI请求,服务器将发送一个JSON响应。请求可以找到,但我无法读取JSON输出。状态始终返回0 这是我的密码 非常感谢。正如巴勃罗所说。您正在使用异步。一个选项是使用get方法,或者只向函数传递回调 function _post(url, callback) { var xhttp = new XMLHttpRequest(); xhttp.open("POST",

我希望一切都很好,如果你能帮助我或重新引导我到一个类似的老职位,因为我找不到一个,我感谢你

我正在尝试启动一个RESTAPI请求,服务器将发送一个JSON响应。请求可以找到,但我无法读取JSON输出。状态始终返回0

这是我的密码



非常感谢。

正如巴勃罗所说。您正在使用异步。一个选项是使用get方法,或者只向函数传递回调

function _post(url, callback) {
  var xhttp = new XMLHttpRequest();
  xhttp.open("POST", url, true);

  xhttp.onload = function() {
    if (xhttp.status === 200) callback(xhttp.responseText);
    else callback("error");
  };
  xhttp.send();

  return xhttp.responseText;
}

_post("url here", function callback(response) {
  // you can access response in here.
  console.log(response);
});
在PHP脚本上

<?php
   header("Access-Control-Allow-Origin: *");

Related:您正在发出一个异步请求,因此当您的代码试图获取它时,响应不在那里。我是否应该更改为:xhttp.open(“POST”,“URL HERE”,false)?@Asma不,异步请求是一件好事。否则你会无缘无故地阻止浏览器。谢谢@lvaroGonzález,我不知道有什么区别。现在我意识到我做错了什么。谢谢,劳拉。我尝试了代码,但没有成功,我收到了一条“错误”消息。以前,我可以发布数据,但我得到了空白响应,但现在数据没有实际发布,尽管URL是正确的。@Asma由于xhttp状态不是200,您会收到错误消息。也许是404。我把它用于我的API。尝试在onload函数中使用
回调(xhttp.status)
:)再次感谢。我试过了,它返回了“403”“禁止”,这是否意味着服务器拒绝了我的请求?@Asma您是否尝试在PHP中添加标题?谢谢Lara。我进一步调查了同一原产地政策,似乎是它造成了问题。我发现服务器支持JSONP,所以我现在正朝这个方向努力。非常感谢你的帮助。
function _post(url, callback) {
  var xhttp = new XMLHttpRequest();
  xhttp.open("POST", url, true);

  xhttp.onload = function() {
    if (xhttp.status === 200) callback(xhttp.responseText);
    else callback("error");
  };
  xhttp.send();

  return xhttp.responseText;
}

_post("url here", function callback(response) {
  // you can access response in here.
  console.log(response);
});
<?php
   header("Access-Control-Allow-Origin: *");