Ajax 仅在Opera:JSON.parse:Unterminated字符串中

Ajax 仅在Opera:JSON.parse:Unterminated字符串中,ajax,json,string,parsing,opera,Ajax,Json,String,Parsing,Opera,仅在Opera中,我在转到时收到“JSON.parse:Unterminated string” 字符串确实未终止,不以“]}结尾 在其他浏览器(即,FF,Chrome)中,它工作正常,并接收整个字符串 字符串很长:217529个字符。这可能是问题所在吗?其他浏览器接收220374个字符,以“]} 我尝试了3种AJAXways来获取数据,结果都是相同的字符串: 第一: var value = (function () { var val = null; $.ajax({'asy

仅在Opera中,我在转到时收到
“JSON.parse:Unterminated string”
字符串确实未终止,不以
“]}
结尾

在其他浏览器(即,FF,Chrome)中,它工作正常,并接收整个字符串

字符串很长:217529个字符。这可能是问题所在吗?其他浏览器接收220374个字符,以
“]}

我尝试了3种AJAXways来获取数据,结果都是相同的字符串: 第一:

var value = (function () {
     var val = null;
    $.ajax({'async': false, 'global': false, 'url': uf_urlsearch,
         'success': function (data) { val = data;
alert("Data Loaded: " + data.slice(-100) + "<br/>Numofchars: " + data.length);
         }
     });
    return val;
 })();
第三:

uf_XMLHttpProductlist.onreadystatechange=function(){
  if (uf_XMLHttpProductlist.readyState==4 && uf_XMLHttpProductlist.status==200){
//Get the returned menu-items in Responsetext, expected to look like this:
  ...
  };//if (uf_XMLHttp.readyState==4 && uf_XMLHttp.status==200){
};//uf_XMLHttp.onreadystatechange=function()

uf_urlsearch = "http://www.underfashion.nl/php/get_productlist.php?"+uf_PHPsearchstring;
uf_XMLHttpProductlist.open("GET",uf_urlsearch,true);
uf_XMLHttpProductlist.send();
};
有人看到解决办法吗


致以最诚挚的问候,

要查看网络活动,请进入Opera功能表->工具->高级->Opera蜻蜓。然后在地址栏中输入URL

在网络选项卡中,您可以看到资源列表。选择XHR按钮,您将看到get_productlist.php资源。值得一提的是,我对你的网站没有任何问题。HTTP请求是:

GET /php/get_productlist.php?afdeling=babys HTTP/1.1 
User-Agent: Opera/9.80 (Macintosh; Intel Mac OS X 10.7.4; U; fr) Presto/2.10.289 Version/12.00
Host:   www.underfashion.nl
Accept-Language:    fr,en;q=0.9,en-US;q=0.8,ja;q=0.7,pt;q=0.6,de;q=0.5,zh-CN;q=0.4,es;q=0.3,it;q=0.2,nl;q=0.1,sv;q=0.1,nb;q=0.1,da;q=0.1,fi;q=0.1,zh-TW;q=0.1,ko;q=0.1,pl;q=0.1,pt-PT;q=0.1,ru;q=0.1,ar;q=0.1,cs;q=0.1,hu;q=0.1,tr;q=0.1,ca;q=0.1,el;q=0.1,he;q=0.1,hr;q=0.1,ro;q=0.1,sk;q=0.1,th;q=0.1,uk;q=0.1
Accept-Encoding:    gzip, deflate
Referer:    http://www.underfashion.nl/babys
Cookie: JSESSIONID=9ABC3B0357487E01298EBC7A02B5FDCD; __atuvc=1%7C25; __utma=137714676.906129982.1340200451.1340200451.1340200451.1; __utmb=137714676.1.10.1340200451; __utmc=137714676; __utmz=137714676.1340200451.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmv=
Connection: Keep-Alive
X-Requested-With:   XMLHttpRequest
Accept: */*
现在HTTP响应很有趣:

HTTP/1.1 200 OK 
Date:   Wed, 20 Jun 2012 13:54:11 GMT
Server: Apache/2.2.14 (Ubuntu)
X-Powered-By:   PHP/5.3.2-1ubuntu4.15
Vary:   Accept-Encoding
Content-Encoding:   gzip
Content-Length: 11469
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type:   text/html
然后是json内容。您看到上面HTTP响应中的错误了吗?是的

Content-Type: text/html
JSON的mime类型在中定义。请使用JSON内容发送以下mime类型

Content-Type: application/json

也就是说,您说在某些特定URI上仍然存在问题(我不知道)。你能分享哪一个吗?

我刚刚在Opera/Ubuntu上测试过,json的答案似乎很完整。谢谢你的评论。因此,它的范围缩小到:仅在Opera/Windows中。我现在也试过用159719个字符的短刻线。同样的问题:最后4000个左右的字符没有通过。这是在Opera 11中。我现在升级到12,但仍然出现同样的问题。我还测试了各种数据集,发现在少量数据的情况下不会发生这种情况,但一些大型数据集也能正确解析。所以没有绝对的限制。你有没有用嗅探器查看网络上真正传递的信息?您的服务器日志中没有错误吗?还没有。从来没有闻过。关于如何在歌剧中做到这一点,有什么提示吗?现在查看我的服务器日志,我看到很多错误的PHP注意:未定义的索引:merk in/domains/underfashion.nl/public\u html/PHP/get\u productlist.PHP,第11行'Hi Karlcow,谢谢!我添加了“header('Content-Type:application/json');”到我的php文件,它收到了全部数据!给你10分。不幸的是,我的网站现在遇到了另一个错误,说明他是;“无法解析value:object”(请参阅underfashion.nl/heren或underfashion.nl上的任何其他页面)正在尝试解决这个问题。是的!在设置了头之后,数据类型当然发生了变化,这导致我不再需要在接收端执行JSON.parse(数据)。数据作为JSON传递并正确读取。谢谢大家!
Content-Type: application/json