Javascript JSON解析错误-获取JSON作为字符串

Javascript JSON解析错误-获取JSON作为字符串,javascript,json,Javascript,Json,我试图从服务中获取json数据,但在使用数据类型为“JSONP”的$.ajax时获取parseError: $.ajax({ url: url, dataType: 'JSONP' }) .error(function(XMLHttpRequest, textStatus, errorThrown) { ... }) .done(function(data) { ... }); 如果我尝试使用“JSONP”以外的其他数据类型,它将返回404错误 如何只获取字符串而不是解析jso

我试图从服务中获取json数据,但在使用数据类型为“JSONP”的$.ajax时获取parseError:

$.ajax({
    url: url,
    dataType: 'JSONP'
})
.error(function(XMLHttpRequest, textStatus, errorThrown) { ... })
.done(function(data) { ... });
如果我尝试使用“JSONP”以外的其他数据类型,它将返回404错误

如何只获取字符串而不是解析json,我相信json中有一些换行符会导致解析错误


这是一把小提琴,它是JSON,而不是JSONP

例如,这是JSON:

{"key": "value"}
这是JSONP:

callback({"key": "value"})
如果服务不提供JSONP,浏览器将阻止您获取它(同源安全限制)

人们绕过同源限制的方式包括一些服务器利用率。您可以使用PHP编写正确的代码,也可以使用AnyOrigin之类的服务

这里有一个AnyOrigin示例

$.getJSON('http://anyorigin.com/get?url=metservice.com/publicData/tides2MonthAuckland&callback=?', function (data) {
    $('#result1').html(JSON.stringify(data.contents));
}).fail(function (XMLHttpRequest, textStatus, errorThrown) {
    $("#result2").html(textStatus);
});
。。。还有一个


下面是一个演示如何使用这些数据的示例。

@x4rf41我已经尝试过了。。。获取404错误-请检查Fiddle服务器端是否在您的控制范围内?@Vinod Louis不,服务器端不在我的控制范围内,只是在玩这一个…但这是一个服务器端技巧,添加了一个在服务器端定义的回调(?),但这里@Felix没有服务器端控制不需要服务器端控制。它在fiddle中工作:-)AnyOrigin将任何请求转换为JSONP请求。jQuery将
转换为类似于
的jquery2910820182098209182
。您使用的是类似于代理的东西,我想它是从您的URL中看到的。这不是对服务器的直接请求代理服务器正在响应您内部调用作为参数传递的url的数据谢谢,好的。这很好用。但是,当我使用它时,有没有一种方法可以避免这个解析错误,正如我所展示的,因为它确实会返回data@Felix在浏览器上尝试此URl(),并查看firebug Net选项卡以查看您将找到的“访问控制允许源…”的响应头。这就是原因,此服务器允许跨域请求