【问题标题】:JavaScript code not working across browsersJavaScript 代码无法跨浏览器运行
【发布时间】:2013-12-21 17:59:42
【问题描述】:

var txt = http.responseText; -> 它在 Chrome 中不起作用... 怎么改这条线?

【问题讨论】:

  • 没有缺少分号,代码有效。
  • 它在 Chrome 中不起作用,但在 IE 中起作用
  • 使用 jQuery,这样您就不必重新发明轮子了...此外,您的代码可能不如他们的好,因为首先,您必须处理各种浏览器不一致,就像你现在正在处理的那样。
  • @user3061731 您需要提供更多关于它如何失败的信息。打开开发者工具视图。如果你打开控制台,你会得到任何错误吗?如果您查看网络选项卡,您是否看到请求?请求是否正确发送?响应是否正确返回?
  • 你能解释一下什么起作用或不起作用(发生错误,什么也没发生)?另外,我强烈建议不要使用 .open(,,false),几乎没有充分的理由让您的请求同步。

标签: javascript html internet-explorer google-chrome


【解决方案1】:

你应该在最后调用方法发送:

var http = new XMLHttpRequest();                
var url = "http://example.com/logScore.php";
var params = "GameID=5&User="+name+"&Score="+score+"";
http.open("GET", url+"?"+params, true);
http.onreadystatechange = function() {//whatever you want}
http.send();

不调用发送请求将不会被发送。

【讨论】:

  • 您可能应该在发送请求之前设置.onreadystatechange。
  • console.log(http.responseText); 放入onreadystatechange 函数会得到什么?
【解决方案2】:

做 AJAX 并让它在 X-Browser 和 vanilla-JS 中工作是一件很痛苦的事。我绝对推荐一个库(比如 jQuery)来为你做这件事。请参阅此答案以了解如何使用纯 JS 进行操作: Easiest way to retrieve cross-browser XmlHttpRequest

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多