콘텐츠를 지정하는 jsonp POST 요청 작성 방법jQuery로 입력하시겠습니까?
콘텐츠 타입 'application/json'으로 jsonp POST 요청을 해야 합니다.POST 요구는 다음과 같이 서버에 송신할 수 있습니다.
jQuery.ajax({
type: 'POST',
url: url,
data: data,
success: success,
error: error,
async: true,
complete: complete,
timeout: TIMEOUT,
scriptCharset: 'UTF-8',
dataType: 'jsonp',
jsonp: '_jsonp',
});
하지만 행을 추가하는 즉시:contentType: "application/json"POST가 아닌 OPTIONS 요청으로 전송을 시작합니다.
콘텐츠 유형을 지정하고 요청을 POST로 제출하려면 어떻게 해야 합니까?
JSONP POST 요구는 할 수 없습니다.
JSONP는 다음 명령어를 작성함으로써 동작합니다.<script>다른 도메인에서 Javascript를 실행하는 태그: POST 요청을 전송할 수 없습니다.<script>태그를 붙입니다.
사용하다json에dataType다음과 같이 보냅니다.
$.ajax({
url: "your url which return json",
type: "POST",
crossDomain: true,
data: data,
dataType: "json",
success:function(result){
alert(JSON.stringify(result));
},
error:function(xhr,status,error){
alert(status);
}
});
서버측 파일에 다음 행을 입력합니다.
PHP의 경우:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Max-Age: 1000');
java:
response.addHeader( "Access-Control-Allow-Origin", "*" );
response.addHeader( "Access-Control-Allow-Methods", "POST" );
response.addHeader( "Access-Control-Max-Age", "1000" );
(해킹)솔루션이 몇 번인가 있습니다.JsonP로 투고할 수 있습니다.(GET에서 사용할 수 있는 2000자 이상의 폼을 투고할 수 있습니다.)
클라이언트 어플리케이션 Javascript
$.ajax({
type: "POST", // you request will be a post request
data: postData, // javascript object with all my params
url: COMAPIURL, // my backoffice comunication api url
dataType: "jsonp", // datatype can be json or jsonp
success: function(result){
console.dir(result);
}
});
자바:
response.addHeader( "Access-Control-Allow-Origin", "*" ); // open your api to any client
response.addHeader( "Access-Control-Allow-Methods", "POST" ); // a allow post
response.addHeader( "Access-Control-Max-Age", "1000" ); // time from request to response before timeout
PHP:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Max-Age: 1000');
이렇게 하면 서버를 Post Request에 개방할 수 있습니다.ID 등의 정보를 제공하여 서버를 다시 보호해야 합니다.
이 방법을 사용하면 요청 유형을 jsonp에서 json으로 변경할 수도 있습니다. 둘 다 올바르게 응답 컨텐츠 유형을 설정하기만 하면 됩니다.
jsonp
response.setContentType( "text/javascript; charset=utf-8" );
json
response.setContentType( "application/json; charset=utf-8" );
서버가 SOP(동일 원산지 정책)를 더 이상 존중하지 않는다는 것은 아닙니다만, 어느 쪽이든 상관없습니다.
언급URL : https://stackoverflow.com/questions/3860111/how-to-make-a-jsonp-post-request-that-specifies-contenttype-with-jquery
'programing' 카테고리의 다른 글
| $.ajax();와 $.ajaxSetup()의 차이. (0) | 2023.02.28 |
|---|---|
| 반응 선택:적어도 비동기 모드에서 목록을 펼치는 오른쪽 버튼을 삭제할 수 있는 방법이 있습니까? (0) | 2023.02.28 |
| JPA를 사용하여 JSON 열을 Java 객체에 매핑하는 방법 (0) | 2023.02.28 |
| Woocommerce에서 특정 제품별로 다른 크기를 표시하는 방법 (0) | 2023.02.28 |
| CSS3 멀티 컬럼리스트 (0) | 2023.02.28 |