2017-01-10 5 views
2

В варианты запросить всегда получать не удался (400 плохого запроса), особенно в среде HTTPS на MAC OSX и прошивке 10 в SAFARIтолько. Chrome и другие браузеры прекрасно работают (200). Мы попробовали почти все, что знаем, чтобы решить проблему, но ничего не работает. Ниже приводится Аякс вызова с опционами заголовками с Междоменнымизапроса по протоколу HTTPS опции не удается (400 плохой запрос) только в Safari 10 Mac и IOS CORS

$.ajax(
    { 
     headers: { 
      Accept : "application/json", 
      'Content-Type': "application/json" 
     }, 
     type : "POST", 
     url : userDataSource, 
     contentType: "application/json", 
     data : JSON.stringify(formData), 
     dataType : 'json', 
     xhrFields :{ 
      withCredentials: true 
     }, 
     crossDomain : true, 
     success : function(data){........}})..... 

Мы попробовали следующие модификации на JavaScript:

  • Изменения предполетных заголовков (Accept и типа содержимого)
  • Удаления заголовков.
  • Изменение заголовков в малом корпусе и наоборот.
  • Добавление некоторых заголовков в соответствии с заголовками ответа.

Мы также внесли аналогичные изменения на стороне сервера и внесли некоторые изменения уровня прокси, но ничего не помогло. Это не общедоступное веб-приложение, а его внутренняя организация.

Это действительно важно для нас, чтобы решить проблему, так как она блокирует доставку.

Пожалуйста, помогите.

enter image description here

+0

У этого есть кричащий титул, чтобы получить ответ. – Jai

ответ

0

Это выглядит как вопрос сервера, который трудно понять, когда, не имея никакой информации о используемой серверной платформе. Вы пытались отладить код, который выдает 400 Bad Request? В файлах журналов также может быть больше информации. Когда вы говорите, что это только проблема в Safari и iOS, это может быть вызвано разным User-Agent в запросе (просто догадка).

Вы проверили, отличаются ли другие HTTP-заголовки запроса в сравнении с рабочим запросом (обязательно сравните запросы OPTIONS, а не POST). Вы можете попробовать некоторые варианты запроса, используя Fiddler или Postman, чтобы сузить проблему до определенной причины.

Прошу прощения, если у вас нет определенного ответа, возможно, вы могли бы предоставить дополнительную информацию о сервере.

+0

Извините, что: /. Это также не удается, если вы создаете запрос OPTIONS в Fiddler/Postman с тем же содержимым (включая заголовки) в качестве запроса Safari? – FelschR

+0

Мы попробовали почти все, что было упомянуто вами, но, к сожалению, ничего не работает. Сервер - это Apache, как на скриншоте. Fiddler не работает хорошо на MAC OSX и попробовал Postman не очень помочь. Мы даже пытались имитировать заголовки запросов и ответов, как в CHROME, так как хром возвращает 200, но это также не помогло. Попробовал сменить пользовательский агент в хром на сафари. ОПЦИИ становятся неудачными - 400 в SAFARI (iOS и OSX). благодаря – Akash