크로스 도메인 Ajax 요청은 웹 서비스 인터페이스를 호출

1.WebService 쓰기 인터페이스

단계 : 새로운 웹 프로젝트 = 만들기 "= 웹 서비스를 추가"인터페이스 방법을 쓰기 = "다음 해제 (현지 테스트를 직접 업이 웹 서비스를 넣고 실행 할 수 있습니다).

키 외부 Ajax 호출을하는 방법.

첫째, 바이두를 이해할 수없는, 제 3자가 (직접 확인에 붙여 의해 테스트) 인터페이스 메서드를 호출 할 수 있도록 (Web.config의) 붉은 부분을 구성해야 WebService에 프로젝트 구성 파일을 구성합니다.

 

< 구성 > 
    < system.web > 
      < 웹 서비스 > 
        < 프로토콜 > 
          < 추가 이름 = "HttpSoap" /> 
          < 추가 이름 = "HttpPost" /> 
          < 추가 이름 = "HttpGet" /> 
          < 추가 이름 = "설명서" /> 
        </ 프로토콜 > 
      </ 웹 서비스 > 
        < 컴파일 디버그 = "true"를 targetFramework = "4.0" /> 
    </ system.web >
  < 의 system.webServer > 
    < httpProtocol > 
      < customHeaders > 
        < 추가 이름 = "액세스 제어 - 허용 - 방법" = "옵션을, POST는 GET" /> 
        < 추가 이름 = "액세스 제어 - 허용 - 헤더" 값을 = "X가 요청한 -와, 콘텐츠 유형" /> 
        < 추가 이름 = "액세스 제어 - 허용 - 유래" = "*"  /> 
      </ customHeaders > 
    </ httpProtocol > 
  </ 시스템.웹 서버 > 
</ 구성 >

Ajax 호출에 대한) 2, 둘째, 여기 WebService에 코드 섹션을 기록하고, 여기에 내가이 사람에 사용자 지정 컬렉션 GetPersonList를 (반환한다.

(1) 출시 [WebService를 (네임 스페이스 = "http://192.168.1.90:5555/")]// 정의 도메인 주소를 여기에 게시 한 후 때 구성해야합니다. 물론, 당신은 로컬 호스트 로컬 테스트를 사용하거나 기본이 될 수 사용할 수 있습니다.

(2) [System.Web.Script.Services.ScriptService] 릴리스한다.

이 두 단계는, 인터페이스 릴리스 WebService에 쓰기 할 주소 http://192.168.1.90:5555/XXX.asmx에 액세스 할 수 있습니다.

에있어서, 상기 이용하는 단계; 
사용 System.Collections.Generic; 
사용을 System.Linq; 
상기 System.Web를 사용하여, 
상기 System.Web.Services을 사용함; 

MyWebService를 네임 스페이스를 
{ 
    /// < 요약 > 
    MyWebService를 요약의 /// 
    /// </ 요약 > 
    [WebService에 (네임 스페이스 = "HTTP : // 로컬 호스트 : 47737 /")] 
    [WebServiceBinding (conformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.ComponentModel.ToolboxItem (거짓)]를 
    // 스크립트에서 ASP.NET AJAX의 사용을 허용하려면 이 웹 서비스를 호출, 다음 줄의 주석. 
    [System.Web.Script.Services.ScriptService] 
    공용 클래스 MyWebService를 다음 System.Web.Services.WebService 
    {

        [의 WebMethod] 
        공공 문자열하여 HelloWorld () 
        { 
            반환에 "Hello World"; 
        } 

        [의 WebMethod] 
        공중 INT 애드온 (INT NUM1, INT NUM2) 
        { 
            복귀 NUM1 NUM2 +; 
        } 
    } 
}

3. 타사 Ajax 호출.

$ 아약스 ({ 
                URL : "HTTP : // 로컬 호스트 : 47737 / MyWebService.asmx 추가 /" 
                유형 : "POST", 
                데이터 : "{ 'NUM1': 2, 'NUM2'5}", 
                ContentType을 " 응용 프로그램 / JSON ", 
                dataType와"JSON ", 
                성공 : 기능 (데이터) { 
                    경고 (data.d); 
                }, 
                오류 : 함수 () { 
                    경고 ("!发送아약스请求失败"); 
                } 
            });

포스트 스크립트 :

 1) Ajax 요청 헤더는 콘텐츠 유형을 통해 제공되며, '애플리케이션 / JSON은 " 문자열 복귀 JSON 같이 표시되며,이 오류의 웹 서비스에 대응하는 상기 GET 요청은 콘텐츠 유형 GET / POST 요청을 제거한 후, 정확하게 수행 할 수있다 하지만 XML이 아닌 JSON을 반환합니다.

'응용 프로그램 / JSON : 요청이 웹 서비스해야 얻을 경우 2), ScriptMethod는 대신 콘텐츠 형식을 통해 제공되는 XML을 반환해야 액세스의 web.config 구성의 GET / POST, 속성 UseHttpGet = TRUE를 지정해야합니다 ' 위로 JSON, 그래서 요청이 잘못 얻을.

추천

출처www.cnblogs.com/superfeeling/p/11600854.html