Mam problem z wysyłaniem żądania treści AJAX przy użyciu jQuery CORS z niestandardowym typem treści. Oto mój kod:jQuery CORS Typy treści OPCJE
$.ajax({
url: "http://some-other-domain/my-path",
type: "POST",
contentType: "application/json",
dataType: "json",
data: JSON.stringify({
key: 1,
key2: 2
}),
statusCode: {
200: function(data) {
}
},
xhrFields: {
withCredentials: true
},
crossDomain: true
});
muszę ustawić Content-type jako "application/json", ponieważ wymagają po stronie serwera. Ale zamiast wysyłać żądanie jako POST jQuery wysyła je jako OPCJE.
Oto nagłówki:
nagłówki odpowiedzi:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Pragma: No-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 03:00:00 EET
Set-Cookie: JSESSIONID=BB9D6783E58FB0F2ADE1924A2F0CBA52; Path=/
Content-Type: text/html;charset=UTF-8
Content-Length: 6233
Date: Fri, 07 Sep 2012 14:41:13 GMT
Żądanie Nagłówki:
OPTIONS /my-path HTTP/1.1
Host: MY-HOME-NAME
User-Agent: MY_USER_AGEMT
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Origin: HERE-GOES-DOMAIN
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Pragma: no-cache
Cache-Control: no-cache
CORS działa świetnie, wszystkie wymagane nagłówki są wysyła przez serwer, ale nie jeśli wysyła przez Typ opcji. Czy to problem z jQuery?
jQuery - 1.8.1
You. Są. A. Godsend. Sprawa Zezwalaj na nagłówki jest tym, co dostałem. Ale więcej niż kod, który napisałeś, twoje wyjaśnienie pomogło zapalić żarówkę, aby pomóc mi wymyślić, jak wszystko działa. Dzięki! – appsecguy
haaaaaa, dziękuję! –
To nie działa dla mnie:/Po prostu robię to dokładnie w ten sposób w filtrze serwletowym –