> 웹 프론트엔드 > JS 튜토리얼 > AJAX 도메인 간 문제에 대한 완벽한 솔루션_javascript 기술

AJAX 도메인 간 문제에 대한 완벽한 솔루션_javascript 기술

WBOY
풀어 주다: 2016-05-16 17:17:58
원래의
1023명이 탐색했습니다.

AJAX가 탄생한 이후부터 XMLHttprequest 개체를 도메인 간에 요청할 수 없다는 문제는 항상 존재했습니다. 이것은 매우 고전적인 질문인 것 같습니다. 이는 JavaScript의 동일 원본 정책으로 인해 발생합니다(여기에서는 자세히 설명하지 않음).

해결책은 아마도 다음과 같습니다.

1. 중간 계층 전환 방법 사용("에이전트"로 이해 가능):

중간 전환은 분명히 다른 도메인의 서버와 AJAX 통신 중에 전환 계층을 추가하는 것입니다. 이 전환 계층은 PHP, JSP, C 등과 같은 네트워크 통신 기능을 갖춘 모든 언어가 될 수 있습니다. 중간 계층부터 다른 도메인의 서버까지 데이터 읽기 작업을 수행합니다. asp.net을 예로 들어 보겠습니다. 다른 도메인의 asp.net과 통신해야 하는 경우 클라이언트의 xmlhttprequest는 먼저 이 도메인의 asp.net을 쿼리한 다음 이 도메인의 asp.net이 asp.net과 통신합니다. 다른 도메인에서 통신을 위해 .net을 사용하고 이 도메인의 asp.net 응답 출력(응답)은 아마도 다음과 같을 것입니다. 독자들은 분명히 이해하고 있을 것입니다.

2. <script> 태그를 사용하세요</script>

이 방법은 <script> 태그의 src 속성에 크로스 도메인 문제가 없기 때문에 <script> 태그의 src를 사용하여 aspx를 쿼리하여 응답을 얻는 것입니다. </script>

더 명확하게 설명하기 위해 예를 들어 보겠습니다.

코드 복사 코드는 다음과 같습니다.




Ajax 도메인 간 문제








getDemo.aspx 배경 코드:



코드 복사
코드는 다음과 같습니다.using System;using System.Collections.Generic;
using System.Linq;
System.Web 사용;
System.Web.UI 사용
System.Web.UI.WebControls 사용;

네임스페이스 LearnJS
{
공개 부분 클래스 getDemo : System.Web.UI.Page {

protected void Page_Load(객체 전송자, EventArgs e)
Response. responseVal='Dylan'");
}
}
}


이 메소드는 xmlHttprequest 없이 ajaj 또는 ajax라고도 하는데, x를 j로 대체합니다. > 태그는 xml 및 xmlHttprequest 대신 사용됩니다. 이 방법은 약간 "대안"인 것 같습니다. 하하.

이제 jQuery를 사용하여 Ajax의 도메인 간 문제를 해결하는 방법을 살펴보겠습니다.


코드 복사

코드는 다음과 같습니다. : 远程服务器端js.txt中的内容为:

var Dylan= {name:"Dylan",email:Dylan@163.com}

笔者感觉这种方式更加简洁。呵呵。当然,读者可以根据实际情况,任意选择实现方式。

怎么样,其实很简单吧, 우리는 더 이상 인식하지 못합니다. AJAX发扬의 A是想强调其实AJAX发扬的是一种异步传输적방법,而不是具体到底使用了哪种技术。

其实, json数据格式之后, 有一种更牛X的“jsonp”, 也可以实现ajax的跨域communica.其实jsonp 不是一种数据格式, 只是对我介绍的第二种方式做了改进。从jQuery1.2 版本开始,jQuery는 JSONP 回调적본지支持。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿