2014-05-22 3 views
0

단일, 이중 오른쪽, 이중 왼쪽 클릭 등을 감지하는 js 응용 프로그램이 있습니다. 단일 클릭은 비동기입니다. http 서버를 요청하고 나머지는 클라이언트 측에서 사용자 인터페이스를 변경합니다. 그러나 서버에 요청을 보내고 클라이언트 측에서 오류를 확인하는 데 성공할 수 없습니다. 아무것도 보내지 않아 웹 서버의 로그에서 읽습니다. 교차 출처 요청은 무엇을 의미합니까?

콘솔에 오류 메시지입니다 : 문제가 여기에 무엇

[Error] XMLHttpRequest cannot load localhost:5050/h?timestampDate=2010-undefined-null&timestampHour=null. 
    Cross origin requests are only supported for HTTP. 
    send ([native code], line 0) 
    h (tm, line 420) 
    (anonymous function) (tm, line 72) 

[Error] NETWORK_ERR: XMLHttpRequest Exception 101: A network error occurred in synchronous requests. 
    h (tm, line 420) 
    (anonymous function) (tm, line 72) 

. 교차 출처 요청은 무엇을 의미합니까? 무엇 이전에 ı에서 내 아약스 요청에 차이가 ı 성공적으로 할 수있다.

참고 : 첫 번째 오류 참조 (tm, 420 행)는 js의 344 행에 있고 두 번째 오류는 js의 11 행에 있습니다.

JS 바이올린 : 오류가 URL 문자열에 따른됩니다 http://jsfiddle.net/farukscan/6kUBy/

답변

2

: 호스트를 포함하면

xmlhttp.open("GET", "localhost:5050/h" + "?" + ..., true); 

, 당신은 적어도 //로 접두사 할 것입니다 때문에 브라우저는 문자열을 알고

xmlhttp.open("GET", "//localhost:5050/h" + "?" + ..., true); 
//     ^^ 
xmlhttp.open("GET", "http://localhost:5050/h" + "?" + ..., true); 
: 절대 URL입니다

그렇지 않으면 URL이 현재 페이지의 주소와 관련이 있다고 가정하므로 브라우저가 localhost:5050을 폴더 이름으로 처리하려고 시도하고 있습니다.


그리고 "교차점"은 Same Origin Policy에서 실패한 URL을 참조합니다. 이는 클라이언트 측 JavaScript가 액세스 할 수있는 주소에 대한 보안 제한 사항입니다.

"원본"은 프로토콜, 호스트 이름 및 현재 주소의 포트를 조합 한 것입니다.

+0

문제점을 해결하기 위해 수행 한 작업은 "/ h"로 서버의 함수 이름 만 사용하는 것이 었습니다 ... 이미 교차 원점 요청을 할 의도가 없습니다. 감사. 다시 그와 다른 사람들이 대답합니다. – fsc

관련 문제