首页新闻找找看学习计划

ajax跨域访问webservice 能返回xml格式吗?

0
悬赏园豆:10 [待解决问题]

求园子里的各位大神解答:ajax跨域访问webservice 能返回xml格式吗? 

cc_jony的主页 cc_jony | 初学一级 | 园豆:46
提问于:2013-12-02 10:55
< >
分享
所有回答(2)
0

Launcher | 园豆:44970 (高人七级) | 2013-12-02 11:03

function D_ajax(url,data)
{
$.ajax({
type: "POST",//用“GET”也试过
url: url,//远程服务器上的webservice服务地址
data: data,//传递是WEB服务的参数
dataType: "xml",
contentType: "application/xml; charset=utf-8",
success: OnSuccess = function (data) { alert("获取XML成功"); },
error: onError = function () { alert("获取XML失败"); }
});
}

我这样写的   chorme提示本机无远程服务器的跨域权限  报403错误

请问这应该如何改呢?

支持(0) 反对(0) cc_jony | 园豆:46 (初学一级) | 2013-12-02 11:07

@cc_jony: 你仔细分析你这个问题,它提示的是“本机无远程服务器的跨域权限”,那么它并没有说是因为“返回的 XML 格式数据”造成了“本机无远程服务器的跨域权限”,所以你这个问题问错了,你应该问“ajax如何跨域访问 web 资源?”

http://www.cnblogs.com/guowei1027/archive/2009/12/15/1625170.html

http://www.blogjava.net/itspy/archive/2007/02/11/99262.html

支持(0) 反对(0) Launcher | 园豆:44970 (高人七级) | 2013-12-02 11:42

@Launcher: 

chrome提示:

Failed to load resource: the server responded with a status of 403 (Forbidden)
Failed to load resource: Origin http://localhost:1108 is not allowed by Access-Control-Allow-Origin.
XMLHttpRequest cannot load。
报错是这样的  提示本机无法跨域访问  你说的很对,但是问题依然没有解决。
支持(0) 反对(0) cc_jony | 园豆:46 (初学一级) | 2013-12-02 11:56

@Launcher:  我为自己的智商捉急啊  看不明白

支持(0) 反对(0) cc_jony | 园豆:46 (初学一级) | 2013-12-02 13:44
0

跨域是不是应该用到jsonp?

雾静 | 园豆:561 (小虾三级) | 2013-12-02 14:13

试过jsonp的  但是webservice返回的不是json标准格式,回调函数可以取到值,但是回调函数不执行,现在想通过接受xml的格式,自己在前台解析成json格式,您有没有什么好的建议呢?

支持(0) 反对(0) cc_jony | 园豆:46 (初学一级) | 2013-12-02 16:00

@cc_jony: 

如何在服务器端实现对JSONP支持
这仅仅需要把服务的JSON数据转换成想要的script tags的形式就可以了,格式可以自已定义,毕竟这是个非官方的协议。
可参考:Implement JSONP in your Asp.net Application
注:Callback仅仅是JSONP的简单实现,可以根据具体需要实现更复杂的功能,比如可以在客户端动态集成更多的变量数据来完成分页功能。
 
如果是 XML 格式的话,可以把整个 XML 作为 Value 包装成 script tags.
支持(0) 反对(0) Launcher | 园豆:44970 (高人七级) | 2013-12-02 18:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册