【问题标题】:jQuery dataType [duplicate]jQuery数据类型[重复]
【发布时间】:2012-10-11 23:53:33
【问题描述】:

超时有效!但是当超时时我想运行一个函数。你有什么想法吗?

$.ajax({ 
type: "GET", 
url: "xajax.php", 
timeout: 100, 
data: "name=John&location=Boston", 
success: function(msg){ alert( "Data Saved: " + msg ); } 

【问题讨论】:

  • 服务器是否返回json...?
  • 没有响应就很难确定问题所在。大多数情况下,问题是错误的 json。可以在浏览器中转到xajax.php?result=hello 并添加对您问题的回复吗?
  • 响应是一个Javascript警告框“parseerror”

标签: jquery json


【解决方案1】:

可能您的 json 对象响应不正确,例如在以下位置进行检查: - http://jsonlint.com/

您也可以在浏览器控制台/网络规范中检查它,看看它是在客户端还是服务器端。

您可以显示您从服务器发送的内容(在创建 json 对象之后),以查看您是否正确发送。

【讨论】:

  • 我不想创建 JSON。现在响应是警告框“Data Saved: John” i $.ajax({ url: "xajax.php", type: "GET", // dataType: "json", data: "name=John&location=Boston", timeout : 40000, 成功: function(msg){ alert( "Data Saved: " + msg ); } });
  • 但是现在;超时不起作用!
  • 好的,如果你指定 dataType:json,你必须接收你在服务器端创建的 json 对象,如果你现在打印你的响应和你得到正确的结果,我认为是:“John”然后超时不会应用,因为你在时间结束之前收到它。
  • 感谢 viruskimera。你说的对。我将超时减少到“100”。有用。但是当超时时我想运行一些功能。你有什么想法吗?
  • 你可以在成功后添加一个错误函数,错误:function(x, t, m) { if(t==="timeout") { alert("got timeout");call function这里; } 其他 { 警报(t); } }
【解决方案2】:
$.ajax({ 
type: "GET", 
url: "xajax.php", 
timeout: 100, 
data: "name=John&location=Boston", 
success: function(msg)
    { 
    $("#result").html("here is result: "+msg);
    }
complete: function(jqXHR, textStatus)
    { 
    if (textStatus == "timeout")
        {
        $("#result").html("TIMEOUT!");
        }
    }
 });

【讨论】:

    猜你喜欢
    • 2016-06-28
    • 2012-02-09
    • 2014-01-10
    • 2013-10-01
    • 2011-12-17
    • 1970-01-01
    • 2019-05-26
    • 1970-01-01
    • 2018-07-16
    相关资源
    最近更新 更多