문제

FireFox 3에서 Ajax 크로스 사이트 스크립팅 문제를 어떻게 해결합니까?

도움이 되었습니까?

해결책

jQuery를 사용하는 경우 이 문제를 극복할 수 있는 콜백 함수가 있습니다.

http://docs.jquery.com/Ajax/jQuery.ajax#options

jQuery 1.2 기준으로 JSONP 콜백을 지정하면 다른 도메인에있는 JSON 데이터를로드 할 수 있습니다."myurl?콜백=?".jQuery는 자동으로 ?통화 할 올바른 메소드 이름으로 지정된 콜백을 호출하십시오.또는 데이터 타입을 "JSONP"로 설정하면 콜백이 AJAX 요청에 자동으로 추가됩니다.

또는 교차 도메인 호출을 수행하는 서버 측 스크립트에 Ajax 요청을 한 다음 데이터를 스크립트로 다시 전달할 수 있습니다.

다른 팁

답변을 업데이트하려면(나중에 이 답변을 찾을 때 주로 도움이 될 것 같습니다) XML이나 다른 것을 로드하는 경우 언제든지 사용자에게 이 코드를 사용하여 다른 사이트에서 읽을 수 있도록 허용할지 물어볼 수 있습니다. :

try {
    if (netscape.security.PrivilegeManager.enablePrivilege)
        netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) { 
    alert("Sorry, browser security settings won't let this program run."); 
    return; 
}

(RESTful 웹 서비스 책에서) 그러나 이것은 HTML 파일이 로컬 파일에서 로드되는 Firefox에서만 작동합니다.그래서 그다지 유용하지 않습니다.

또 다른 해결책:헤더만 필요한 경우 메서드로 "HEAD"를 지정하면 보안 문제가 발생하지 않습니다.예를 들어 웹페이지가 존재하는지 알고 싶은 경우입니다.

var client = new XMLHttpRequest();
client.open("HEAD", my_url, false);
client.send(null);
if(client.readyState != 4 || client.status != 200) //if we failed
    alert("can't open web page");

좀 더 자세한 내용이 있으면 좋을 것 같습니다.어떤 AJAX 라이브러리를 사용하고 있는지, 무엇을 얻고 싶은지, 어떻게 수행하는지.

예를 들어 허용되지 않는 도메인 간 Ajax 요청일 수 있습니다.이 경우 사용 JSON.

나는 최근에 이 문제를 발견했는데 그것은 교차 사이트 스크립팅 문제가 아니라 AJAX로 로컬 요청을 로드하는 동안이었습니다.또한 지미 자신도 같은 문제를 안고 있는 것 같습니다.이는 FF 보안 문제인 것 같습니다. 이 문서에서는 제한된 URI 거부" 코드에 대한 액세스 원인 및 해결 방법:"1012 문제.

죄송합니다. Firefox 3에서 jQuery $ .Ajax를 사용하여 오류가 발생했습니다.JSONP 제안을 시도했지만 JSON을 제공할만한 것만으로 만 작동 할 것이라고 생각합니다.Yahoo! Finance에서 데이터를 가져 오는 샘플 로컬 HTML 파일 기반 매시업을 만들려고하지만 .CSV를 제공하고 있으므로 SOL이라고 생각합니다.– 지미 찬드라(9월 9일 17:20)

나는 당신이 그것을 유용하게 사용할 수 있기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top