2013-01-01 2 views
0

"BasicHttpbinding"바인딩을 사용하는 WCF 서비스가 있습니다. Internet Explorer에서 JQuery를 사용하여 정상적으로 서비스를 호출 할 수 있습니다. 그러나 Chrome이나 FireFox에서는 동일한 코드가 작동하지 않습니다. Chrome 또는 FireFox에서 JQuery Ajax 호출로 도메인 간 문제가 있음을 이해할 수 있습니다. crossDomainScriptAccessEnabled = "true"로 "webHttpBinding"바인딩을 노출하고 서비스를 호출 할 수 있다는 것을 알고 있습니다. 하지만 거기에 스캔 리가 있다면, 나는 기존의 "BasicHttp"바인딩과 함께 가야만한다. 그러면 해결책은 무엇인가?BasicHttpbinding을 사용하는 WCF 서비스에 대한 도메인 간 JQuery Ajax 호출

[OperationContract] 
string GetData(int value); 

아무도 여기에 대한 솔루션을 제공 할 수 :

 $.ajax({ 
        type: "POST", 
        url: "http://localhost:1415/MyService.svc/bh/", 
        data: bhRequest, 
        timeout: 10000, 
        contentType: "text/xml", 
        dataType: "xml", 
        beforeSend: function (xhr) { 
         xhr.setRequestHeader("SOAPAction", "http://tempuri.org/IMyService/GetData"); 
        }, 
        success: function (data) { 
         $(data).find("GetDataResponse").each(function() { 
          alert($(this).find("GetDataResult").text()); 
         }); 
        }, 
        error: function (xhr, status, error) { 
         alert(error); 

        } 
       }); 

내 WCF 서비스 방법은 다음과 같습니다 : 나는 다음과 같은 jQuery 코드와 WCF 서비스 불렀다?

답변

0

추가하여 WCF에 Global.asax에, 그 후이 추가 :

protected void Application_BeginRequest(object sender, EventArgs e) 
{ 
    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin","*"); 
} 
관련 문제