2012-06-20 2 views
0

JSON을 사용하여 API에 PUT 호출을 사용하려고합니다. 내가 jQuery를 사용하고으로부터는 내가 내 코드를 말할 수있는 것은 바로 같습니다JSON PUT 요청 오류

<script type="text/javascript"> 
    $(document).ready(function() { 
     $.ajax({ 
      url: 'https://app.clickdimensions.com/Service.svc/v1/account/accountIdHere/capture', 
      type: 'PUT', 
      data: { 'reg_FirstName': 'First', 
        'reg_LastName': 'Last', 
        'reg_Phone': '123-342-1211', 
        'reg_Email': '[email protected]', 
        'reg_Company': 'My Company', 
        'reg_Address1': '123 Traffic Lane', 
        'reg_Address2': '', 
        'reg_City': 'Atlanta', 
        'reg_State': 'GA', 
        'reg_Zip': '12232', 
        'reg_Country': 'United States' 
      }, 
      success: function() { alert('PUT completed'); } 
     }); 
    }); 
</script> 

을하지만 그것을 실행할 때 다음과 같은 오류 얻을 : 나는 모든 곳에서 보니 모든 것을 시도했습니다

XMLHttpRequest cannot load https://app.clickdimensions.com/Service.svc/v1/account/accountIdHere/capture. Origin http://localhost:65116 is not allowed by Access-Control-Allow-Origin. 

를 I 아무 소용이 찾을 수 있습니다. 따라서 JSON PUT 호출을 수행 할 때 코드가 잘못 될 수 있다고 생각합니다. 코드가 잘못 보이나요? 그렇다면 어떻게 해결할 수 있을까요? 그렇지 않다면, 그 오류에 대한 어떤 생각?

감사합니다.

답변

1

코드가 정확하지만 데이터를 요청한 도메인이 적절한 CORS 헤더를 반환하지 않는 한 PUT 요청 도메인 간 처리를 수행 할 수 없습니다.

+0

고마워요, 실제로 많은 것을 설명합니다. 그곳에는 어떤 유형의 일도 일어나지 않을 것입니다. 그것은 아마 내가 서버 측에있는 사람들로부터 많은 도움을 얻지 못할 그 중 하나입니다. –

+0

유일한 대안은 서버에서 요청을하는 프록시를 사용하는 것입니다. 자바 스크립트는 서버의 데이터를 요청하고 서버는 다른 도메인의 데이터를 요청합니다. –

0

jQuery가 좋아 보인다. 문제는 다음과 같습니다. Origin http://localhost:65116 is not allowed by Access-Control-Allow-Origin.

이것은 리소스로드가 많음을 나타내며, 대부분의 경우 상황에 따라 다릅니다. https://app.clickdimensions.com/Service.svc/v1/account/accountIdHere/capture을 제어 할 수 있다면 특정 도메인의 요청을 허용하도록 수정할 수 있습니다. 또는 JSON 대신 JSONP을 사용하여 도메인 간 요청을 수행 할 수 있습니다. 단, 이러한 경우에는 HTTP PUT에 대한 성공 여부를 확신 할 수 없습니다. JSONP는 제 지식으로는 HTTP GET이어야합니다.