我们正在开发一个带有RESTful JSON Api和trigger.io的应用程序(trigger.io的v2.1.6和请求模块的2.5)。
某些数据包含用户生成的内容,我们因为此内容可能包含\ u2028或\ u2029字符而受到严重打击。 (这导致json响应不是有效的JS)
详细信息:
“SyntaxError: Unexpected EOF” when evaluating JavaScript in iOS UIWebView
和 http://timelessrepo.com/json-isnt-a-javascript-subset
这会触发一个window.onError“with SyntaxError:Unexpected EOF”,iOS上没有任何堆栈跟踪(在设备和模拟器上的iOS7.1上验证)。
这是一个example JSON,在字符串“foo \ u2028bar”中间包含\ u2028字符。
我们用于触发问题的代码如下 - 您需要将url指向服务器上的u2028.json并调用此函数。
trybreakJson: function(){
forge.request.ajax({
type: "GET",
url: ,
success: function(data, headers) {
console.log(data);
console.log("GOT DATA");
alert(data);
alert('Response headers: ' + JSON.stringify(headers));
},
error: function(error) {
alert('Failed to update x: '+error.message);
}
});
},
我试图找出JSON可能被错误评估的位置,但我只在all.js中找到了对JSON.parse的引用(对于这些字符应该没问题)。
这个错误发生在哪里?我查看了Request模块,看起来很好。 任何人?