Javascript JSONP-“;未捕获的语法错误:意外标记“;
在我解释我的问题之前,我想提一下,我对Javascript JSONP-“;未捕获的语法错误:意外标记“;,javascript,jquery,ajax,json,jsonp,Javascript,Jquery,Ajax,Json,Jsonp,在我解释我的问题之前,我想提一下,我对jsonp很幼稚。这实际上是我第一次尝试使用JSONP 我使用jqueryajax调用从网站上回调数据 下面是我的jquery代码 $.fn.checkTPS = function(){ return this.each(function(){ var interval; $(this).on('keyup', function() { var api_key = 'asdfasfsadfs
jsonp
很幼稚。这实际上是我第一次尝试使用JSONP
我使用jqueryajax调用从网站上回调数据
下面是我的jquery代码
$.fn.checkTPS = function(){
return this.each(function(){
var interval;
$(this).on('keyup', function() {
var api_key = 'asdfasfsadfsadfsad';
var format = 'json';
var username = 'dame@example.co.uk';
var self = $(this);
var selfValue;
var feedback = $('.tps-feedback');
if(interval === undefined){
interval = setInterval(function(){
if(selfValue !== self.val()) {
selfValue = self.val();
if (selfValue.length > 9){
$.ajax({
url: 'https://www.selectabase.co.uk/api/v1/tps/' + selfValue + '/',
type: 'get',
dataType: 'jsonp',
data: {
format: format,
username: username,
api_key: api_key
},
success: function(data) {
console.log(data);
},
error: function() {
},
jsonp: 'jsonp'
});
}
}
},3000);
}
});
});
};
我想提供selectabase.co.uk
提供的服务,根据他们的说法,这就是我应该如何使用该服务https://www.selectabase.co.uk/api/v1/tps/[number]/?format=json&username=[username]&api_key=[api key]
当我使用ajax发送请求时,我得到了这个错误未捕获的语法错误:意外的标记:
,当单击它时,就会打开
{“ctps”:false,“number”:“1452500705”,“resource_uri”:/api/v1/tps/01452500705/”,“tps”:false}
顺便说一下,我想要但不知道这是什么错误意外标记:
我从inspect element选项卡复制了以下链接(您可以看到下图),我认为这是jsonhttps://www.selectabase.co.uk/api/v1/tps/01452500705/?jsonp=jQuery17102731868715648129_14120077325500&format=json&username=dame40example.co.uk&api_key=asdfasfsadfsadfsad&_=14120077325500
我从chrome的inspect element>source选项卡中复制了下面的链接。。我想我应该添加一个图像来正确描述我复制的json数据和链接的位置
我希望我已经设法把我的信息传达给了。。。请帮助,如果你有什么想法我需要补充。。。查询字符串中的format=json
可能应该是format=jsonp
。服务器正在用JSON进行响应,但您需要一个JSONP响应。但我不知道它们是否支持format=jsonp
,这只是猜测
或者,如果该服务器支持并允许来自您的源站的请求,您可以处理JSON(只需从ajax
调用中删除dataType:“JSON”
)。请注意,这将要求用户使用IE8和IE9没有的浏览器。(它们支持CORS,但不是通过普通的XMLHttpRequest
对象,这是一种浏览器不一致性,jQuery无法为您解决。但是,如果您搜索,您可以找到“插件”或类似的插件来处理它。)服务器正在发回JSON,而不是JSONP。这就是问题所在,但是如果我使用dataType:'json'
browser将请求发送给url@Sharif服务器需要使用JSONP本身进行响应。此格式与ajax JSONP无关这是他们希望发送数据的方式?format=json&username=[username]&api_key=[api key]
@Sharif:通常,如果这样的服务有一个格式
查询字符串param,那么它们支持多种格式(JSON、XML和JSONP都很流行)。这一个可能支持,也可能不支持,但同样地,因为它们似乎支持CORS,如果它们提供的只是JSON,那么您可以使用JSON。@Sharif:“我也尝试过jsonp,但仍然是相同的错误”是的,我不确定它们是否真的支持jsonp,只是JSON。(这会很奇怪,但我对他们的页面进行了一些修改,看起来就是这样的…)所以您必须使用答案的第二段。我刚刚从代码中删除了数据类型:“jsonp,这个错误XMLHttpRequest无法加载。请求的资源上不存在“Access Control Allow Origin”标头。因此不允许源代码“”访问。@Sharif:Darn,这意味着它们不支持来自您的源代码的CORS。如果他们不支持JSONP,也不支持您的源代码中的CORS,您就不能在客户端查询此信息。您需要查询自己的服务器,并让服务器查询它们。