2016-08-17 3 views
3

API 백엔드에 대한 모든 호출을 처리하기 위해 Angular $resource provider을 사용하는 각도 1.5 앱이 있습니다. 나는 최근에 드래그 앤 드롭 인터페이스가있는 기능을 추가했으며 항목이 특정 버킷에 드롭되면 해당 데이터를 저장하기 위해 공개 API 메소드에 관련된 모든 데이터와 함께 PUT 요청을 수행합니다.PUT 요청은 Chrome 또는 Opera에서만 SPDY 프로토콜 오류를 생성합니까?

나는 그것을 몇 달 전에 개발했는데 한 특정 버전의 Mac 전용 버전 (이미 이미 2 ~ 3 버전 임)에서 이상한 버그를 발견했지만, 그렇지 않으면 완벽하게 작동했습니다.

난 단지 최근에 크롬과 오페라 브라우저가 모두 PUT 호출에서 오류가 발생했다는 것을 깨닫기 위해 더 많은 테스트를 한 후에 API를 릴리스했습니다. API는 요청을받지 못합니다. 내가 할 정보의 유일한 조각은 크롬 콘솔에서이 설명입니다 : 내가 생각 PHPDraft

:

PUT https://www.phpdraft.com/api/draft/59/pick/5026/depth_chart/37 net::ERR_SPDY_PROTOCOL_ERROR

자신이를 참조하려면, 여기에 전화 또는 이와 유사한 것들을 할 수있는 URL입니다 내 서버가 HTTPS를 사용하고 있다는 사실이 여기에있는 문제 일 수 있지만 지금까지 수행 한 Google 검색은 지금까지 전혀 의심 스럽지만 내 상황에 적용되는 것처럼 들리지 않습니다.

angular.module('app').factory('api', function($resource, ENV) { 
    return { 
    DepthChartPosition: $resource(ENV.apiEndpoint + "commish/draft/:id/depthchartposition/:position_id", { 
     draft_id: '@draft_id', 
     position_id: '@position_id', 
     draft_sport: '@draft_sport', 
     manager_id: '@manager_id', 
     pick_id: '@pick_id' 
    }, { 
     'update': { 
     method: 'PUT', 
     url: ENV.apiEndpoint + "draft/:draft_id/pick/:pick_id/depth_chart/:position_id" 
     } 
    }) 
    }; 
}); 

그리고 여기에 위의 코드에 의해 생성되는 요청 자체의 모습입니다 :이 PUT 호출 (마찬가지로 다른 모든 통화)를 만들기 위해 내 각도 응용 프로그램 내에서 $resource을 사용하고 방법은 다음과

입니다 :

General 
Request URL: https://www.phpdraft.com/api/draft/59/pick/5026/depth_chart/37 

Request Headers 
Accept:application/json, text/plain, */\* 
Content-Type: application/json;charset=UTF-8 
Origin: https://www.phpdraft.com 
Referer: https://www.phpdraft.com/draft/59/depth_chart 
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 

Request Payload 
{draft_id: "59", position_id: "37", pick_id: "5026"} 

이 요청에 대한 응답 창이 비어 있으며 devtools는 요청이 "정지됨"으로 표시됩니다. 여기에 무슨 일이 일어나고 있는거야?

+0

복제 오류의 출시와 함께 제거됩니다. 첫 번째 Google 검색 결과는 chrome : // net-internals/# events & q = type : SPDY_SESSION % 20is : 액티브 및 플러싱 소켓으로 진행할 것을 제안했습니다. 결과가 바뀌지 않도록 시도했습니다. 참고, SPDY 오류가 발생하기 전에이 오류가 발생했습니다.'SourceMap을 구문 분석하지 못했습니다 : https : // www.phpdraft.com/js/affix.min.js.map' – Zoot

+0

첨부 파일 맵 오류가 잘. 나는 명시 적으로 소스 맵을 사용하는 응용 프로그램을 만들지 않으므로 그 응용 프로그램이 소스 맵을 사용한다는 점이 궁금합니다. 별도의 버그를 입력하겠습니다. – Mattygabe

답변

2

올해 5 월 15 일 현재 Chrome no longer supports SPDY이며 더 이상 현재 버전에 포함되지 않습니다.

... 5 월 15 일부터 시작 - HTTP/2 RFC - Chrome 의 기념일은 SPDY를 더 이상 지원하지 않습니다.

... SPDY와 NPN 지원은 리눅스에서 크롬에서 크롬 (51)

+0

SPDY 프로토콜을 사용하도록 내 응용 프로그램이나 서버에 명시 적으로 말한 적이 없었습니다 (사실, HTTP/2에 대한 Robert Boedigheimer의 이야기를 보았으므로 저는 그것이 무엇인지, 어떤 용도로 사용되었는지 잘 알고 있습니다). Chrome과 Opera 모두이 오류를 나타냅니다. 내 Chrome의 설정에서 SPDY가 명시 적으로 해제되어 있지만 HTTP/2는 켜져 있습니다. – Mattygabe

+0

HTTP/2처럼 @Mattygabe SPDY도 서버 측에서 설정해야합니다. Opera는 Chrome과 동일한 엔진을 사용하기 때문에 Chrome과 동일하게 작동합니다. – Rob

+0

나는 내 호스트 (Accuwebhosting)와 확인한 결과 공유 호스팅이고 다른 고객에게 영향을 줄 수 있으므로 HTTP/2를 선호하여 SPDY를 삭제할 수 없다고했습니다. SPDY가 HTTP/2 워킹 그룹을위한 실험적인 테스트 환경이었고 어디에서나 프로덕션 용도로 사용되지 않았기 때문에 꽤 poppycock이라고 할 수 있습니다. 새 호스트를 찾을 시간! – Mattygabe

관련 문제