本地一切正常但是当我将wcf数据服务部署到服务器时,响应是atom + xml。我错过了什么吗?
jquery的
$(function () {
$.ajax({
contentType: "application/json; charset=utf-8",
url: "http://subdomain.domain.com/wcfdataservice.svc/surveys/",
dataType: "jsonp",
success: function (data, textStatus) {
},
error: function (data, textStatus) {
}
});
});
wcf web.config
<system.web>
<compilation debug="false" targetFramework="4.0" />
<authentication mode="None"/>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
</system.webServer>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" crossDomainScriptAccessEnabled="true" />
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
提琴手
HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Length: 13483
Content-Type: application/atom+xml;charset=utf-8
Server: Microsoft-IIS/7.5
DataServiceVersion: 2.0;
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 25 Mar 2011 17:46:37 GMT
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xml:base="http://subdomain.domain.com/wcfdataservice.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
...
答案 0 :(得分:2)
我认为Pablo Castro对这个问题的answer是您正在寻找的解决方案。
基本上,您需要在请求中指定“application / json”的“accept”标头,并且还可以选择使用服务上的[JSONPSupportBehavior]
属性。我认为,既然你正在控制两端,那么接受标题就是你所需要的。
编辑:如果您使用Fiddler检查您的请求并且您没有看到设置或未正确设置“接受”标头,您可以在此处使用此技术文章:
http://snipplr.com/view/9869/set-jquery-ajax-header/
希望这有帮助!