【问题标题】:Parsing JSON url in pure javascript在纯 JavaScript 中解析 JSON url
【发布时间】:2016-11-20 02:23:16
【问题描述】:

我正在尝试用纯 javascript 解析一个 url,只有一个可执行文件。

   url = 'http://myurl.php?format=json'
   var request = new XMLHttpRequest();
   request.open('GET', url, true);

   request.onload = function() {
     if (request.status >= 200 && request.status < 400) {
       var mystuff = JSON.parse(request.responseText);
     } else {
       // some error
     }
   };
   request.onerror = function() {
     // some error
   };
   request.send();

   console.log(mystuff);

执行此操作时,我收到 XMLHttpRequest is not defined 错误。最好的方法,最简单的方法是什么?

谢谢。

【问题讨论】:

  • 什么是浏览器?
  • 我实际上是通过 hook.io 运行它,它是一个 Slack 斜杠命令应用程序(Slack bot)。
  • @Imalea,很简单:您的环境没有XMLHttpRequest 的定义。你需要弄清楚他们的替代方案是什么。
  • 难道没有一种方法可以在不涉及 XMLHttpRequest 的 Javascript 中做到这一点吗? (据我了解仅适用于浏览器)
  • @Imalea,Javascript 有两种执行 AJAX 的方式:XMLHttpRequestnew ActiveXObject("Microsoft.XMLHTTP")(仅存在于旧的 Internet Explorer 浏览器中)。在流行的库中还有其他执行 AJAX 的方法(例如,jQuery 有 $.ajax()),但即使这些方法也依赖于这两个 XMLHttpRequestnew ActiveXObject("Microsoft.XMLHTTP")。如果这些在您的环境中不可用并且您的环境没有提供替代选项(例如,卷曲的能力,这可能在您的环境中可用),那么您很不走运。

标签: javascript json hook.io


【解决方案1】:

这个说法是错误的,你应该把 url 作为一个变量而不是 "url" 作为一个字符串,

request.open('GET', 'url', true);

request.open('GET', url, true);

此外,xmlHttpRequest 仅适用于某些版本的浏览器。 你可以做这样的事情来检查 xmlhttpRequest 是否在你的浏览器上工作,

var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
 }

【讨论】:

  • 我同意“url”是一个错误,但我怀疑这是否解决了 XMLHttpRequest 未定义的问题,除非 OP 的环境产生完全不相关的错误消息。
  • 感谢@GraveyardQueen,这是我在stackoverflow 中的拼写错误,而不是在我的代码中。绝对不是问题。
  • 您使用的是哪个浏览器和版本?@Imalea
  • 我正在使用 hook.io 运行脚本,并在 slack 中对其进行测试(它是一个斜线命令应用程序)。
  • 虽然这里的根本问题是他没有在浏览器中运行,只是出于好奇,您认为XMLHttpRequest 不可用的浏览器是什么?
猜你喜欢
  • 2011-04-08
  • 2016-10-22
  • 2016-02-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
  • 1970-01-01
  • 2011-10-02
相关资源
最近更新 更多