2017-02-11 44 views
20

Używam CORS do pobierania niektórych danych z interfejsu API. Wszystko działało dobrze, dopóki aktualizacja Chrome nie została uruchomiona dzień wcześniej.Chrome, brak danych odpowiedzi po żądaniu OPTIONS?

Teraz po żądaniu OPTIONS kolejne żądanie zawsze zwraca bez danych odpowiedzi.

Jeśli dwukrotnie szybko kliknę przycisk, pojawi się on na drugim żądaniu (tym samym), ponieważ nie wykonuje połączenia przed lotem.

Zainstalowałem i wyłączyłem wszystkie rozszerzenia, nie mam pojęcia, co się tutaj dzieje.

Czy ktoś inny tego doświadcza?

EDYTUJ Zauważ, że brak odpowiedzi pochodzi bezpośrednio od devtools. To tylko połączenie Ajax. I chociaż nie wyświetla żadnych danych odpowiedzi, wszystko działa poprawnie. Na przykład, jeśli wykonam kod console.log(res), wszystko będzie dobrze. Chodzi o to, że Chrome nie pokazuje żadnej odpowiedzi i ściśle przestrzega żądania OPTIONS (CORS).

EDYCJA Należy również zauważyć, że wszystko działa poprawnie i wyświetla się doskonale w Firefox/Firebug.

EDIT Chrome Wersja 56.0.2924.87 (64-bit)

EDIT ja właśnie stracił tutaj. Aplikacja działa perfekcyjnie, więc trochę trudno jest nawet wiedzieć, gdzie debugować gwiezdne. Wydawało się, że dosłownie dzień po tym, jak Chrome pojawił się zielona ikona aktualizacji. Po tej aktualizacji widziałem zero.

Sprawdziłem niektóre z moich innych aplikacji i tak naprawdę to tam działa! Pomyślałem więc, że może to być związane z pewną kombinacją wtyczki/Chrome, która nie gra ładnie. Próbowałem wrócić do wielu wersji, ale nie szczęścia. Dziwne jest to, że jest to tylko po żądanie OPTIONS. Domyślam się, że to coś prostego, jak typ kodowania, ale nie mam pojęcia gdzie.

EDIT próbował również następujące niektóre lidera tutaj bez powodzenia: View AJAX response content in Chrome developer tools?

EDIT I udało się ograniczyć to do problemu z wtyczką vue-zasobów. Działa dobrze z aksiosami. Fiddle jest tutaj: https://jsfiddle.net/tpnucv5m/

+0

Czy można sprawdzić w konsoli DevTools aby zobaczyć, co się tam loguje? Również może pomóc, jeśli możesz opublikować kod, który może być użyty do odtworzenia problemu. – sideshowbarker

+0

Brak odpowiedzi jest bezpośrednio z devtools. To tylko połączenie Ajax.I chociaż nie wyświetla żadnych danych odpowiedzi, wszystko działa poprawnie. Na przykład jeśli robię 'console.log (res)' to wszystko jest dobre. Chodzi o to, że Chrome nie pokazuje żadnej odpowiedzi i ściśle przestrzega żądania OPTIONS (CORS). – Rob

+0

Którą wersję Chrome? (Proszę rozważyć edycję swojego pytania, aby dodać dokładną wersję z chrome: // chrome /) – sideshowbarker

Odpowiedz

12

szybkie ustalenie, aż moduł jest aktualizowany, to skomentować tę linię w dist/vue-resource.common.js:

xhr.responseType = 'blob';

Należy gdzieś wokół linii ~ 1054

+0

To zadziałało dla mnie. Oczekiwanie na aktualizację modułu w celu poprawienia poprawki. –

+2

To wydaje się być odpowiedź. Stworzyłem już problem z facetem z pagekitem, ale nie jestem pewien, czy to już jest zaimplementowane. https://github.com/pagekit/vue-resource/issues/566 – Rob

5

Wiem, że to nie jest rozwiązanie (nie prowokuj), ale kliknij prawym przyciskiem myszy OPCJE XHR i POWTÓRZ XHR. Ponownie wyśle ​​wywołanie Ajax, a teraz będzie odpowiedź.

Zakładam, że jest jakiś problem asynchroniczny z wtyczką.

+0

Dobra, Istnieje również opcja "Kopiuj jako curl", a następnie wklej w wierszu poleceń. – pdem