gpt4 book ai didi

jquery - 使用jquery jsonp返回错误回调函数未调用

转载 作者:行者123 更新时间:2023-12-01 03:14:10 25 4
gpt4 key购买 nike

我有以下working example ,我正在尝试获取 http://detectlanguage.com通过 jquery 请求。由于这将是一个跨域请求,我使用 jsonp。

这里是a link in MSDN使用类似的请求,推断 jsonp 是可行的方法。

一切都很好,除了页面抛出错误错误:未调用myCallback,我从服务器得到的响应如下:

{"data":
{"detections":[
{"language":"ca",
"isReliable":false,
"confidence":0.14992503748125938
},
{"language":"en",
"isReliable":false,
"confidence":0.00 8103727714748784
}]
}
}

我一整天都在 stackoverflow 中搜索有关 jsonp 的答案,但还没有让它发挥作用。

非常感谢任何帮助

已更新

包括 AJAX 调用

$.ajax({
url: 'http://ws.detectlanguage.com/0.2/detect',
data: {
q: $('#hi').val(),
key:'demo'
},
jsonpCallback: 'myCallback',
dataType: "jsonp",
success: myCallback,
error: function(e,i,j){
$('#results').html(j)
}
});

我还有一个名为 myCallback 的 JavaScript 函数:

function myCallback(response){
alert(response.data)
}

最佳答案

响应似乎不是 jsonp,jsonp 响应应该是 javascript。下面是适合我的代码。

ajax请求:

 $.ajax({
crossDomain: true,
type:"GET",
contentType: "application/json; charset=utf-8",
async:false,
url: "http://<your service url here>/HelloWorld?callback=?",
data: {projectID:1},
dataType: "jsonp",
jsonpCallback: 'fnsuccesscallback'
});

返回 jsonp 的服务器端代码(c#):

 public void HelloWorld(int projectID,string callback)
{

String s = "Hello World !!";
StringBuilder sb = new StringBuilder();
JavaScriptSerializer js = new JavaScriptSerializer();
sb.Append(callback + "(");
sb.Append(js.Serialize(s));
sb.Append(");");
Context.Response.Clear();
Context.Response.ContentType = "application/json";
Context.Response.Write(sb.ToString());
Context.Response.End();
}

关于jquery - 使用jquery jsonp返回错误回调函数未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19351934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com