2011-10-16 50 views
1

我想在我的浏览器的控制台运行此代码:跨域JSON请求无

$.ajax({ 
    dataType: 'json', 
    url: 'http://www.web2pdfconvert.com/engine?curl=http://www.nytimes.com&outputmode=json?callback=?', 
    success: function (data) { 
    if(data.resultcode == 1) { 
     console.log(true); 
    } else { 
     console.log(false); 
    } 

    }, 
    }); 

但是,我得到一个跨域请求错误。当我尝试创建一个简单的JSON请求时,也会发生相同的错误,因为JSON请求无法在跨域中进行。然而,当你去这个网址:

http://www.web2pdfconvert.com/engine?curl=http://www.nytimes.com&outputmode=json 

您可以看到JSON数据。然而,写在这个网站API的文档中的关键点说:

json - all conversion data are returned as JSON object. Also JSONP cross domain communication supported usign jQuery.

在此先感谢。

+0

http://www.web2pdfconvert.com/engine?curl=http://www.nytimes.com&outputmode=json?callback=?您使用的网址不是JSON格式?或者我错过了什么? – 2011-10-16 20:25:02

+0

JSON由此URL返回http://www.web2pdfconvert.com/engine?curl=http://www.nytimes.com&outputmode=json –

回答

2

使用JSONP来代替:

$.ajax({ 
    dataType: 'jsonp', 
    url: 'http://www.web2pdfconvert.com/engine?curl=http://www.nytimes.com&outputmode=json', 
    jsonp: "callback", 
    success: function (data) { 
    if(data.resultcode == 1) { 
     console.log(true); 
    } else { 
     console.log(false); 
    } 

    }, 
    }); 
+0

我在浏览器的控制台中收到此错误:Uncaught SyntaxError:意外的标记:引擎:2 –

+0

我试了一下,看看http请求回来。该网站正在返回正确的JSON,但不是由它的外观jsonp。它不是;将json包装成回调方法。与API提供商聊天。 – iandayman

+0

问题解决了,现在你的代码工作正常! – Tomas