【问题标题】:Respond with JSON using AJAX and XMLHttpResponse使用 AJAX 和 XMLHttpResponse 响应 JSON
【发布时间】:2012-06-21 04:43:53
【问题描述】:

我不是 100% 如何表达这个问题。我有一个类似于

的 URL 请求
example.php?miscData=JSON_FILE_NAME

现在 JSON_FILE_NAME 包含该文件独有的数据。我有类似于下面的 example.php 设置

    xmlHttpReq.open('GET', strURL, true);
    xmlHttpReq.onload = function(e) {
        var data = JSON.parse(this.response);
    }
    xmlHttpReq.send();

请求文件具有处理调用成功的功能,设置如下

function(retData, textStatus, xhr) { }

我预计 retData 将包含 JSON 数据 {"name":"Dominic"} 等...但它没有。我做错了什么?

【问题讨论】:

  • 它返回什么而不是 JSON 数据?
  • 它响应 example.php 的源,它通常是空的,或者包含 数据,具体取决于我尝试设置页面的方式。
  • 你能发布你的 php 代码,因为那是给你带来问题的代码吗?
  • pastebin.com/c7h8V9JK 是这一秒的正确状态。
  • 那么......在你的代码中你为什么要发布到 $setType-$gender.json (第 71 行)

标签: php javascript json xmlhttprequest


【解决方案1】:

来自http://pastebin.com/c7h8V9JK 的服务器端代码正在响应 HTML 页面,而不是 JSON 响应。 PHP 之外的代码只不过是 HTML。所以很自然,当请求页面时,服务器将返回您放在该 php 脚本之外的 HTML。

请记住,就从服务器发送和接收数据而言,最基本的 AJAX 请求并没有什么特别之处。想象一下,您在最喜欢的选项卡式浏览器中打开了另一个选项卡,并且该选项卡正在导航到您的 AJAX 请求正在导航到的 URL。这就是您发出 AJAX 请求时发生的情况。

如果您尝试从 example.php 获取 JSON 数据,请先从该文件中删除所有 HTML,然后使用 JSON 序列化程序序列化您尝试获取的数据。

encode json using php?

【讨论】:

  • 干杯。比我尝试做的要简单得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-19
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多