gpt4 book ai didi

通过 ssl 调用时,jQuery jsonp ajax 调用不返回结果

转载 作者:太空宇宙 更新时间:2023-11-03 15:06:52 24 4
gpt4 key购买 nike

我有以下 ajax 调用,从 www.DomainName.com 中的 ssl 页面调用(例如 https://www.domainname.com/caller.aspx):

   $.ajax({
type: "GET",
url: "https://services.DomainName.com/myService.svc/GetCustomers",
data: { accNo: accno, count: "35" },
dataType: "jsonp",
error: function (xhr, status, error) {
var test = "";
var test2 = xhr;
var test3 = stat;
var test4 = error;
},
success: function (data) {
var suggestions = [];
$.each(data, function (i, val) {
suggestions.push(val);
});
add(suggestions);
}
})

成功函数和错误函数都没有被调用。

但是当我将服务 url 更改为不使用 ssl 时,调用成功并返回客户列表: http://services.DomainName.com/myService.svc/GetCustomers

如果我粘贴 https://services.DomainName.com/myService.svc/GetCustomers直接在浏览器的地址栏中返回客户列表。这是 jasonp 调用,在通过 SSL 调用时不返回结果(也不返回错误)。

有什么想法吗?

最佳答案

为了让以后遇到此问题的任何人都不会像我一样为此苦苦挣扎,对此的答案是在您的配置文件中添加安全标记,如下所示:

<bindings>
<webHttpBinding>

<binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" >

<security mode ="Transport">
<transport clientCredentialType= "None" />
</security>

</binding>
</webHttpBinding>
</bindings>

当我遇到这个问题时,我可以在 fiddler 中看到用 http 调用 rest 调用返回了结果中带有回调函数的结果,但是用 https 调用相同的 rest 调用只返回了结果,这些结果没有被包裹在回调函数。

这是我在 fiddler 中设置的示例,它是您遇到此问题的症状。

HTTPS REST 调用:

https://mydomain.com/service.svc/GetState?callback=jQuery171014469725495108632_1368658094950&_=1368658098533

返回:"{\"statename\":null,\"stateid\":null,\"region\":null}"

HTTP REST 调用: http://mydomain.com/service.svc/GetState?callback=jQuery171013910021002618056_1368658212752&_=1368658215502

返回:jQuery171013910021002618056_1368658212752("{\"statename\":null,\"stateid\":null,\"region\":null);

您可以看到 https 调用没有使用 jquery 回调函数正确包装结果。使用安全标签修复它。希望这对下一个人有帮助。罗伯特

关于通过 ssl 调用时,jQuery jsonp ajax 调用不返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5891379/

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