Ошибка запроса AJAX с локально обслуживаемой страницы на удаленный сервер, хотя кажется, что все заголовки CORS присутствуют. Это JavaScript:Ошибка AJAX, даже если присутствуют заголовки CORS
$.ajax({url: 'http://prox.tum.lt/420663719182/test-upload?Action=SendMessage&Version=2012-11-05&MessageBody=eyJlbWFpbCI6IiIsInNhbHQiOiJ6eTVzbnV0ams5MWY5YTRpIn0%3D', headers: {"X-Endpoint": "http://sqs.us-east-1.amazonaws.com"}})
И это завиток командной строки, которая делает то же самое:
curl -vH 'X-Endpoint: http://sqs.us-east-1.amazonaws.com' 'http://prox.tum.lt/420663719182/test-upload?Action=SendMessage&Version=2012-11-05&MessageBody=eyJlbWFpbCI6IiIsInNhbHQiOiJ6MTc3ZHk4cDUyaXlzeXZpIn0%3D'
Если запустить выше команду, вы можете увидеть ответа CORS заголовки являются максимально разрешительный:
< HTTP/1.1 200 OK
< Access-Control-Allow-Credentials: true
< Access-Control-Allow-Headers: DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,X-Endpoint,Accept,Origin,Referer,X-Something
< Access-Control-Allow-Methods: GET, POST, OPTIONS
< Access-Control-Allow-Origin: *
Вот заголовки посылаемые вместе с запросом:
Request Headersview source
Accept: */*
Origin: http://localhost:3000
Referer: http://localhost:3000/upload
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.71 Safari/537.36
X-Endpoint: http://sqs.us-east-1.amazonaws.com
Однако я до сих пор видим запрос сбой в сетевой консоли хрома:
XMLHttpRequest cannot load http://prox.tum.lt/420663719182/test-upload?Action=SendMessage&Version=2012-11-05&MessageBody=eyJlbWFpbCI6IiIsInNhbHQiOiJ6eTVzbnV0ams5MWY5YTRpIn0%3D. Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin.
Не следует заголовок Access-Control-Allow-Origin: *
получить браузер, чтобы разрешить это до конца?
Я также вижу запрос о предполетной проверке в сетевой консоли, который, кажется, преуспевает с 204 и теми же разрешительными заголовками CORS, что и выше. Вот скриншот из предполетной заголовков запросов и ответов:
http://i.imgur.com/TMRPUPG.png
Можете ли вы также показать заголовки запросов? Они потенциально важны и должны пролить свет на вашу проблему. –
@RayNicholus Добавлены заголовки запросов. Также добавлена заметка о том, что я вижу, что браузер выдает предполетную запись для этого запроса, что странно, потому что это запрос GET. Тем не менее, ответ на предполетный просмотр выглядит так, что он должен разрешить запрос AJAX. –
Существует несколько различных факторов, определяющих, должен ли пользовательский агент предварять запрос. Наличие нестандартных заголовков является одним из факторов. Ваш заголовок X-Endpoint запускает предполетную запись. –