您必须设置一个非常规参数才能使SO API正常工作。而不是常规的
callback,您需要传递一个
jsonp参数。
此外,您不能
POST使用JSONP。
$.ajax({ type: 'GET', url: 'http://api.stackoverflow.com/1.1/stats', dataType: 'jsonp', success: function() { console.log('Success!'); },error: function() { console.log('Uh Oh!'); }, jsonp: 'jsonp' });使用常规的XMLHTTPRequest无法进行跨域AJAX。这是出于安全原因(称为同源策略)。
有一种解决方法。
script标签不受此限制。这意味着您可以
script在调用URL的文档中插入标签。如果您在脚本中定义了一个全局可访问的函数,并告诉远程服务器该函数的名称,则服务器可以传递将要发送的数据包装起来的代码,以对该函数的调用。
您在这里遇到的困难是StackOverflow
API。按照惯例,您可以
callback在请求中使用参数来告诉服务器您的函数被调用了什么。但是,StackOverflow的API要求您改为使用
jsonp参数。



