【问题标题】:Retrieving HTML string via WCF Service through Cross Domain JSONP AJAX call通过跨域 JSONP AJAX 调用通过 WCF 服务检索 HTML 字符串
【发布时间】:2012-03-05 21:26:19
【问题描述】:

我有一个返回字符串的 WCF 服务。我正在尝试使用跨域 JsonP 请求来调用它。这在 IE 中有效,但在其他浏览器中无效。我在 Firefox 和 Chrome 中收到解析器错误。

通过阅读各种文章,我似乎认为服务可能需要以不同的格式返回结果。任何想法都会有所帮助,这是我的代码。

WCF 服务代码

[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json)]
public string SponsorLayout2(string projectScope, int projectYear, int imageHeight)
{
   // Mock data
   projectScope = "uk";
   projectYear = 2012;
   imageHeight = 42;

   // Get projectId
   var project = Projects.GetProjectByProjectScopeAndYear(projectScope, projectYear);

   // Get project sponsor layouts
   var projectSponsorLayout = ProjectSponsorLayouts.GetProjectSponsorLayout(project.Id, imageHeight);

   // Return the sponsors
   if (projectSponsorLayout != null)
      return projectSponsorLayout.Body;

      return null;

}

Jquery Ajax 调用

$.ajax({
cache: false,
type: "GET",
async: false,
data: {},
url: "http://127.0.0.1:8082/HtmlService.svc/SponsorLayout2",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
crossDomain: true,          
success: function (data) {  
    alert("success");       
},
error: function (xhr) {
          alert("error");
    alert(xhr.statusText);
},
complete: function(jqXHR, textStatus) {     
          alert(textStatus); 
      } 
});

【问题讨论】:

    标签: ajax wcf json cross-domain jsonp


    【解决方案1】:

    我发现了我遇到上述问题的原因,并认为我会与您分享。 由于某种原因,此属性之间存在冲突

    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    

    在我班上名列前茅

    public class MyClass
    

    这个规则在我的 web.config 文件中

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
      multipleSiteBindingsEnabled="true" />
    

    我最终在我的 web.config 中评论了排除规则,一切都变得生动起来。因为我的服务是一个 AJAX 就绪的服务,所以该属性被添加到类上方开箱即用。无论如何,这对我有用,并希望它可以帮助其他处于相同情况的人。

    【讨论】:

      猜你喜欢
      • 2012-05-28
      • 1970-01-01
      • 2011-01-14
      • 2011-07-08
      • 2015-12-11
      • 2013-06-23
      • 2014-04-30
      • 1970-01-01
      • 2016-05-09
      相关资源
      最近更新 更多