jQuery 跨域查询问题..高分求解

chessman_mak 2011-09-22 02:46:14
最近做一个功能.. 需要用到ajax去跨域查询

var url = 'http://172.18.1.77/API/rs/country/list/';
$.ajax({

accepts: 'application/json',
url: url,
dataType: 'jsonp',
jsonp: 'callback',
contentType: 'application/json',
type: 'POST',
beforeSend: function (x) {
x.setRequestHeader("Content-Type", "application/json; charset=utf-8");
},
success: function (json) { alert('succ') },
error: function (XMLHttpRequest, textStatus, errorThrown) { alert(textStatus) }

})



我用这段代码来尝试访问WCF.. 访问成功. 但是返回的不是JSON类型 而是XML类型...

我已经对WCF的配置处理过.. WCF是可以输出JSON的. 只要CONTENT-TYPE是:application/json 就可以了..
但是.. 无论用配置 contentType: 'application/json', 或者是

beforeSend: function (x) {
x.setRequestHeader("Content-Type", "application/json; charset=utf-8");
},
都不可以设置contentType. 导致无法输出json格式的数据..

请问各位大侠有没有办法?
...全文
131 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
潮起潮落 2011-09-23
  • 打赏
  • 举报
回复
不能改WCF
那你在客户端都接受XML,使用的时候写个转换函数转换成JSON对象。
潮起潮落 2011-09-23
  • 打赏
  • 举报
回复
你从何得知“ResponseFormat 是被设定为根据contentType 来返回的”的?
chessman_mak 2011-09-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 konghulu 的回复:]

WCF返回JSON需要设置ResponseFormat
C# code

[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
public Article AddArticle(Article article)
……
[/Quote]

ResponseFormat 是被设定为根据contentType 来返回的. 由于WCF 不只是这一个项目用. 其它项目有可能需要XML格式的数据 .. 所以基本上不能改WCF上的代码
潮起潮落 2011-09-22
  • 打赏
  • 举报
回复
WCF返回JSON需要设置ResponseFormat

[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
public Article AddArticle(Article article)
{
article.Title += "(模拟添加)";
article.Content += "(模拟添加)";
article.Id = 101;
return article;
}
潮起潮落 2011-09-22
  • 打赏
  • 举报
回复
WCF里面要返回JSON类型的数据需要修改ResponseFormat
类似这里所写的

[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Json)]
public Article AddArticle(Article article)
{
article.Title += "(模拟添加)";
article.Content += "(模拟添加)";
article.Id = 101;
return article;
}
hellNo 2011-09-22
  • 打赏
  • 举报
回复
小顶一个,记得散分
Exodia 2011-09-22
  • 打赏
  • 举报
回复
FireBug后台把HTTP头截出来看看
chessman_mak 2011-09-22
  • 打赏
  • 举报
回复
上面代码有误.. type: 'POST', 应该改为 'GET' 不过还是不行
诺维斯基 2011-09-22
  • 打赏
  • 举报
回复
顶一个

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧