1

仅在 Opera 中,我在访问 http://www.underfashion.nl/babys"JSON.parse: Unterminated string"时收到 该字符串确实未终止,不以 . 结尾。"]}

在其他浏览器(IE、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;
 })();

第二:

$.get(uf_urlsearch, function(data){
alert("Data Loaded: " + data.slice(-100));
});

第三:

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();
};

有人看到任何解决方案吗?

此致,

4

1 回答 1

0

要检查网络活动,请转到 Opera 菜单 -> 工具 -> 高级 -> Opera Dragonfly。然后在地址栏中输入 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 类型在RFC 4627中定义。请使用 JSON 内容发送以下 mime 类型。

Content-Type: application/json

那就是说您在某些特定的 URI 上仍然存在问题(我没有)。能分享一下是哪一个吗?

于 2012-06-20T14:04:42.700 回答