2013-10-31 2 views
0

내 웹 사이트에서 http://bitalarm.com은 클라이언트 측에서 Javascript로 요청한 API를 통해 Bitstamp 가격을 통합하려고합니다. 이 오류를 받고있다 : 크로스 도메인 AJAX가 작동하지 않습니다. 와일드 카드 원산지 이어도

XMLHttpRequest cannot load http://www.bitstamp.net/api/ticker/. Origin http://bitalarm.com is not allowed by Access-Control-Allow-Origin. 

나는 와일드 카드에 액세스 제어 - 허용 - 원산지를 설정하는 비트 코인 알람을 실행하는시나 응용 프로그램 내 헤더를 변경했습니다. 나는 이것이 컬 때문에 설정되었다는 것을 안다 :

$curl -I http://bitalarm.com 
HTTP/1.1 200 OK 
Content-Type: text/html;charset=utf-8 
Access-Control-Allow-Origin: * 
Content-Length: 2253 
X-Xss-Protection: 1; mode=block 
X-Content-Type-Options: nosniff 
X-Frame-Options: SAMEORIGIN 
Vary: Accept-Encoding 
Server: WEBrick/1.3.1 (Ruby/2.0.0/2013-08-29) 
Date: Thu, 31 Oct 2013 01:39:08 GMT 
Connection: Keep-Alive 

불행히도, 나는 여전히 오류가 발생한다. 헤더의 다른 부분을 변경하여이를 작동시켜야합니까?

다음은 해당 API에 액세스하는 javascript입니다. jQuery를 사용한 GET 요청 일뿐입니다.

url: 'http://www.bitstamp.net/api/ticker/', 

getPrice: function(callback){ 
    $.get(app.api.bitstamp.url, function(data){ 
    callback({ 
     value: data.data.last_local.value, 
     display: data.data.last_local.display 
    }); 
}); 
+1

아약스 요청을하는 위치에서 자바 스크립트를 표시 할 수 있습니까? –

+0

게시물을 업데이트했습니다. – drewblaisdell

답변

1

API 사이트 (www.bitstamp.net)에는 Access-Control-Allow-Origin 헤더 세트가 없습니다.

제공된 CURL 예는 사이트에 대한 요청입니다. 브라우저를 통해 갈 수있는 요청을 허용하지 않습니다 의미 여기에서 설정에는 Access-Control-Allow-Origin을, 없다

$ curl -I http://www.bitstamp.net/api/ticker/ 
HTTP/1.1 302 Found 
Date: Thu, 31 Oct 2013 01:58:04 GMT 
Server: Apache 
Location: https://www.bitstamp.net:443/api/ticker/ 
Connection: close 
Content-Type: text/html; charset=iso-8859-1 
Set-Cookie: incap_ses_156_99025=nashNbLsX1Eg32pAgDkqAiy5cVIAAAAAz1umCC4nKSJlj6EdKqS70w==; path=/; Domain=.bitstamp.net 
Set-Cookie: visid_incap_99025=A7ePN/kMSnWVCoZjb2CgRSu5cVIAAAAAQUIPAAAAAABYCnOINrGBVtDw+Rx+PQs1; expires=Fri, 30 Oct 2015 08:44:52 GMT; path=/; Domain=.bitstamp.net 
X-Iinfo: 11-97249264-97249266 NNNY CT(123 -1 0) RT(1383184683823 1) q(0 0 1 1) r(2 2) U6 
X-CDN: Incapsula 

하는 것으로 : bitstamp하는 실제 CURL 요청 반면 bitstamp 사이트에 대한 요청은, 약간 다른 무언가를 보여줍니다.

저는 bitstamp.net 서버에 액세스 할 수 없다고 가정합니다.이 경우 서버 측 프록시를 사용하여 ajax를 통해 데이터를 가져와야합니다. 귀하의 서버 측 코드가 Ruby, so this Ruby example may be helpful towards implementing such a proxy으로 작성되었다는 귀하의 예제 CURL 요청에서 추측하고 있습니다.

-1

하기 때문에 도메인 http://bitalarm.com는 API 서버에 상장 흰색이어야한다, 다른 도메인 http://www.bitstamp.net/에서 API 접근을 시도하고있다.

API 서버의 구성을 확인하십시오.

관련 문제