我尝试在冒号处拆分字符串并检查它是否成功。 api.php给了我一个JSON。
$.ajax({
type: "POST",
url: "api.php",
data: { "somedata": "123"},
success: function (data, status, xhr) {
if (data.indexOf("text") != -1) {
var meinjson = $.parseJSON(data);
for (var key in meinjson) {
if (meinjson.hasOwnProperty(key) && key=="text") {
text = meinjson[key];
text = text.replace(/\+/g, " ");
text = decodeURIComponent(text);
if (text.indexOf(":") !== -1) {
text = text.split(/:(.+)?/);
var text1 = text[0];
var text2 = text[1];
}
if (text2 == undefined || text1 == undefined || text1 == void 0 || text2 == void 0 || text1=="" || text2=="") {
alert("fail");
}
}
}
}
}
});
我无法解释为什么互联网资源管理器总是落入最后但是没有firefox和chrome。 数据的一个例子是:
{"command":"SENDTEXT","text":"Lorem+Ipsum","command":"SENDTEXT","text":"Lorem+Ipsum+dolor","specialcommand":"CONNECTACCEPT"}
答案 0 :(得分:1)
你错过了}
。如果您在if
函数中的第一个success
之后缩进,则会看到哪里。
更新
您正在分享逗号,但数据中“text”的值不包含逗号。如果"text":"Lorem+Ipsum"
的实际值为"Lorem+Ipsum"
,则不会包含"text":
。
答案 1 :(得分:0)
建议重构您的声明以利用错误检查。 Undefined and void 0 are essentially the same。除了空字符串,它们都是假的值。
if (!text2 || !text1 )
{
alert("fail");
}