AJAX를 사용하여 SOAP 호출 (크로스 사이트가 아니므로 프록시와 관련된 문제가 발생하지 않아야 함)을 호출하려고합니다.
그러나 , XHR, SOAPTarget 및 SOAPAction에 두 개의 사용자 정의 헤더가 필요합니다. 현재, 나는 아약스 호출과 같이 할 jQuery를 사용하고 있습니다 :XMLHTTPResquest.setRequestHeader()가 사용자 정의 페이지 헤더를 추가하지 않습니다.
jQuery.ajax({
url: this.location,
type: 'POST',
data: sm,
dataType: "xml",
contentType: "text/xml",
processData: false,
beforeSend: function(xhr){
xhr.setRequestHeader(
"SOAPTarget",
this.location
);
xhr.setRequestHeader(
"SOAPAction",
this.urn
);
},
success: jQuery.jSOAPClient.success,
error: jQuery.jSOAPClient.error
});
코드를 예상대로 모두 실행하는, 나는 방화범 헤더를 볼 때 그러나, 그들에게 변화가 없습니다.
테스트를 실행하면 Safari와 FF에서 저에게 효과적입니다. "요청 헤더"를 확인하십시오. 그 후에 서버 측에서 확인하십시오. – airportyh
조사해 주셔서 감사합니다! 그것은 당신을 위해 일한 것이 흥미 롭습니다. 결국 대답은 범위 지정 문제로 밝혀졌습니다. 네가 도망친 검사 사본을 가지고 있다고 생각하지 않니? –
부수적으로, "beforeSend"대신 "header :"태그를 사용했습니다. 'headers : {SOAPAction : requestList [reqItem] .SOAPAction, SOAPTarget : requestList [reqItem] .SOAPTarget}'그것은 함수 호출의 오버 헤드를 피합니다. – Richard