跨域使用WebService
Consuming WebService in Cross Domain
应该很简单。我已经阅读了很多关于跨域使用 Web 服务和使用 JSONP 的帖子,但是我缺少一些东西。
如果我在 WebBrowser 中调用以下 URL,我可以得到我的结果:
http://benfaniz.com.br/WebService.asmx/AAA_Buscar_Nome_Condominio?callback=?
要使用 jQuery 使用它,我正在使用:
$(document).ready(function() {
var surl = "http://benfaniz.com.br/webservice.asmx/AAA_Buscar_Nome_Condominio";
$.ajax({
type: 'POST',
url: surl,
dataType: "jsonp",
success: function(msg) {
alert(msg.data);
},
error: function(xhr, status, error) {
alert("error");
}
});
});
但我总是出错?有什么问题?
更新
我可以使用以下代码获取 URL 的内容(取自 here)
$(document).ready(function() {
var theUrl = "http://benfaniz.com.br/WebService.asmx/AAA_Buscar_Nome_Condominio?callback=?"
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);
}
}
xmlhttp.open("GET", theUrl, false );
xmlhttp.send();
});
我能做到。我发现这个问题 here 给了我指示。
主要问题是我得到的结果是 XML 而不是 JSON。要更改此设置,我必须添加行 contentType: "application/json; charset=utf-8"
.
最终代码如下:
$(document).ready(function() {
var surl = "http://benfaniz.com.br/webservice.asmx/AAA_Buscar_Nome_Condominio";
$.ajax({
url: surl,
contentType: "application/json",
dataType: "json",
success: function (json) {
alert(json.d);
},
error: function (xhr) {
alert("ERRO");
}
});
});
应该很简单。我已经阅读了很多关于跨域使用 Web 服务和使用 JSONP 的帖子,但是我缺少一些东西。
如果我在 WebBrowser 中调用以下 URL,我可以得到我的结果: http://benfaniz.com.br/WebService.asmx/AAA_Buscar_Nome_Condominio?callback=?
要使用 jQuery 使用它,我正在使用:
$(document).ready(function() {
var surl = "http://benfaniz.com.br/webservice.asmx/AAA_Buscar_Nome_Condominio";
$.ajax({
type: 'POST',
url: surl,
dataType: "jsonp",
success: function(msg) {
alert(msg.data);
},
error: function(xhr, status, error) {
alert("error");
}
});
});
但我总是出错?有什么问题?
更新
我可以使用以下代码获取 URL 的内容(取自 here)
$(document).ready(function() {
var theUrl = "http://benfaniz.com.br/WebService.asmx/AAA_Buscar_Nome_Condominio?callback=?"
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);
}
}
xmlhttp.open("GET", theUrl, false );
xmlhttp.send();
});
我能做到。我发现这个问题 here 给了我指示。
主要问题是我得到的结果是 XML 而不是 JSON。要更改此设置,我必须添加行 contentType: "application/json; charset=utf-8"
.
最终代码如下:
$(document).ready(function() {
var surl = "http://benfaniz.com.br/webservice.asmx/AAA_Buscar_Nome_Condominio";
$.ajax({
url: surl,
contentType: "application/json",
dataType: "json",
success: function (json) {
alert(json.d);
},
error: function (xhr) {
alert("ERRO");
}
});
});