2017-01-06 3 views
1

Эта проблема происходит только с текущей версией Safari на Mac. (Старые версии Safari могут быть затронуты, но не нужны для этого)Нечетная проблема Safari с использованием jQuery.ajax()

Общая ошибка 500 возвращается каждый раз только для Safari.

У вас проблема с ресурсом, который вы ищете, и его невозможно отобразить.

Весь другой браузер, который я могу проверить с возвратом успешно, имея данные - ожидаемый фрагмент HTML для отображения.

Вот мой вызов ajax.

$.ajax({ 
     async: true, //Added based on internet suggestions 
     type: "POST", 
     url: '../Provider/SaveAddress', 
     data: buildAddressJsonData(), 
     contentType: 'application/json; charset=utf-8', 
     success: function (data) {    
      $("#result").html(data); 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      DisplayErrorMessage(xhr, ajaxOptions, thrownError); 
     } 
    }); 

Я добавил в async: true на основе некоторых других говорят, что исправили проблему. Я даже попытался изменить сервер ответов с HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin","*"); так же, как это было предложено.

Я также подтвердил, что buildAddressJsonData() предоставляет правильный json, вот пример.

{"IsRequired":"1","AddressIndex":"1","AddressLine1":"IBM","AddressLine2":"123 Upper St","AddressLine3":"Unit 14","City":"My Town","Id":"481c40d3-4a38-492b-880e-33b16021fb69","Lk_AddressTypeId":"d2316e7e-b2df-4274-9757-1ae5aa171f68","Lk_CountryId":"13c9fb13-8f50-438e-890a-63e6f1f4cd29","Lk_StateId":"0894fa8a-8d6b-43fc-89ec-e16ba915b6a4","SendMail":1}

Это все размещены в приложении ASP.Net MVC5

Ни один из них не появляются, чтобы сделать какие-либо изменения.

Edit: Я сказал, что логи сервера, кажется, не показывают ничего, но мой быть конфигурацией (я не имею доступа к ним)

+0

Нет ошибки в тексте ответа ошибки 500, получаемой Safari? –

+0

@RoryMcCrossan - единственный текст ответа, который я вижу, - «Существует проблема с ресурсом, который вы ищете, и его невозможно отобразить». – Jason

+0

Очень странно. Единственное различие, которое я мог себе представить, это «данные», поступающие из запроса Safari, каким-то образом вызывают проблему в коде на стороне сервера. Не могли бы вы добавить код 'buildAddressJsonData()' к вопросу - или, по крайней мере, проверить, что он генерирует объект, который вы ожидаете. –

ответ

0

Это решение для этого является то, что Josep предложил для this question.

Оказывается, Safari на OSX и iOS блокирует сторонние файлы cookie по умолчанию и меняет этот параметр, исправляя эту проблему.