2014-10-21 5 views
0

방금 ​​새 asp.net-mvc6을 시작하고 몇 가지 문제가 발생했습니다. 설명서는 아직 도움이되지 않습니다. 여러분 중 일부가 도와 주길 바랍니다.JSON 대신 JSONP를 반환하도록 asp.net-mvc6을 활성화하는 방법

저는 하나의 페이지로 작은 웹 사이트를 구축했으며 하나의 컨트롤러를 webservice로 사용하여 jquery로 자동 완성 텍스트 필드를 제공합니다.

동일한 도메인에 있으므로 모든 것이 잘 동작합니다.

이제 다른 서버에서 호스팅되는 WordPress 블로그의 내부에서 웹 서비스를 다시 사용하고 싶습니다. 웹 서비스에서 JSONP 응답을 받기 위해 일부 이전 프로젝트의 jQuery 코드를 재사용했지만 작동하지 않습니다.

서버에서 올바른 콜백 함수를 생성하지 않으며 항상 일반 JSON 만 반환합니다.

일부 설정 파일 또는 JSON 대신 JSONP를 반환하도록 서버에 지시 할 수있는 부분이 있습니까?

JSONP와 함께 asp.net-mvc6 프로젝트에 대한 작업 예제 코드가 있습니까? 이 옵션은 중대하다 Can I Use Listing

:

큰 감사와 관련 Gogglehead는

답변

1

대신 JSONP를 사용하여, 당신은 지금 모든 주요 브라우저에서 지원되는 크로스 리소스 공유 (CORS)을 고려할 수 있습니다 표준 JSON을 사용할 수 있고 추가 응답 헤더 만 있으면 작동하기 때문입니다. 공유되는 웹 서비스 만 포함하는 프로젝트가있는 경우 web.config 파일을 통해 전체 프로젝트에서이 프로젝트를 활성화 할 수 있습니다.

[HttpGet("{subject}/{number}")] 
    public CourseList Get(string subject, int number) 
    { 
     Response.Headers.Add("Access-Control-Allow-Origin", new string[] { "*" }); 
     CourseList list = new CourseList(); 
     //Retrieve the data 
     return list; 
    } 
: 헤더 수집을 수정하여도 수행 할 수 있습니다
<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer> 

    <!-- Enable Cross-Origin Requests --> 
    <httpProtocol> 
     <customHeaders> 
    <add name="Access-Control-Allow-Origin" value="*"/> 
     </customHeaders> 
    </httpProtocol> 

    </system.webServer> 
</configuration> 

만이 특정 컨트롤러 액션 활성화하려면

,