2017-10-19 11 views
0

서비스를 사용할 수 있는지 확인하기 위해 salesforce Live Agent API에 간단한 REST GET 요청을 보내려고합니다.Salesforce LiveAgent Rest API 400 잘못된 요청 오류

내 웹 기반 REST 클라이언트 (Chrome Plugin - Boomerang)에서 간단한 GET 요청을 성공적으로 만들 수 있지만 JQuery $ .ajax에서 요청을 성공적으로 만들 수 없습니다.

400 개의 잘못된 요청 오류가 발생합니다.

$(document).ready(function(){ 
    checkAvailable("https://d.xxx-xx-xxx.salesforceliveagent.com/chat/rest/Visitor/Availability?org_id=xxxxxxxxxxxxxxx&deployment_id=xxxxxxxxxxxxxxx&Availability.ids=[xxxxxxxxxxxxxx]"); 
}); 

function checkAvailable(URL) 
{ 
    $.ajax({ 
     url: URL,  
     type: "GET", 
     beforeSend: function(xhr){ 
      xhr.setRequestHeader('X-LIVEAGENT-AFFINITY', "null"); 
      xhr.setRequestHeader('X-LIVEAGENT-API-VERSION', "41"); 
      }, 
     success: function(response) { alert('Success: ' + response); }, 
     error: function(req, err){ console.log('Error Message: ' + err); } 
    }); 

} 

내가 뭘 잘못하고 있을지 누가 ​​알 수 있습니까? 문제가 데이터 형식과 관련이 있다고 생각하지만 나머지 클라이언트는 문제가 없습니다.

+1

도메인 간 문제 일 수 있습니까? –

+0

Chrome Plugin REST 클라이언트에서 작동합니다. – Craig

+0

좋아요, 그렇지만 어쩌면 플러그인과 브라우저가 도메인 간 제약 조건과 관련하여 동일하지 않을 수도 있습니다. 확인해 볼 가치가있어. –

답변

0

대답은 Saleforce 지원에 따라 Live Agent REST API CORS 설정에 있습니다. 아직 해결책을 시도하지는 못했지만 그럴듯 해 보입니다. 기본적으로 REST API에 대한 CORS 제한으로 인해 브라우저에서 AJAX 쿼리를 수행 할 수 없습니다. 도메인을 허용 목록에 추가해야합니다. 나는 답장에 다시 나에게지고, 2 weeksm 후, 결국 그 이전에 사용하여 결국 주위에

그들은이 문서를 참조했다가 ...

https://developer.salesforce.com/docs/atlas.en-us.chatterapi.meta/chatterapi/extend_code_cors.htm

는 PHP를 만드는 작업이었다

프록시를 사용하여 Live Agent REST API를 호출합니다.

기본적으로 내 AJAX 코드는 내 서버에서 PHP 프록시 파일을 호출 한 다음 curl을 통해 Live Agent REST API를 호출 한 다음 응답을 Ajax 요청으로 다시 보내 CORS 문제를 피합니다.