2017-10-25 17 views
0

을 사용하여 Jquery를 사용하여 요청을 보내려고합니다.이 요청은 support for jsonp입니다.JSONP를 사용하는 Redmine API 요청에서 JSONP를 사용하여 MIME 유형 오류가 발생했습니다

그래서 Jquery로 요청을하는 데 다양한 방법을 시도했지만 'mime type'오류를 이미 검색하고 답변을 사용하여 해결하려고 시도하지만 콘솔의 오류가 같은 것이 계속됩니다 (Chrome) :

refused to execute script from 'http://redmine_domain_sample/users/current.json?callback=jQuery21309665620597314108_1508906065651&_=1508906065652' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.

그리고 파이어 폭스에서 :

SyntaxError: missing ; before statement

정말 내 데이터를 반환하는 JSON에 apponiting. 이건 내 코드입니다

enter image description here

: 내가 데이터를 볼 수 있습니다 클릭하면

$("#redmine").click(function() { $.ajax({ type:"get", url:"http://redmine_domain_sample/users/current.json", dataType: "jsonp", contentType: "application/javascript", success: function(response) { alert(response.firstname); exibeProjetosRedmine(); } }); });

URL을 작동하는 인증 요청을 만들, 그래서 내가 입력 로그인 데이터를, 상단의 오류가 나타납니다.

확장 클라이언트 (예 : Chrome 고급 REST 클라이언트)에서이 요청을하면 작동하지만 localhost Laravel 애플리케이션에서는 작동하지 않습니다.

요청은 200 ok을 반환하지만 Jquery 요청은 성공 기능으로 이동하지 않습니다.

  • URL

일부 헤더

  • 패스 format=json을 추가하지만, 작업을하지 말아 : 내가 좋아하는 검색 할 때 난 정말 심지어 솔루션을 시도했다. 내가 뭘 잘못하고있어? 나는 그것이 단순한 오류라고 믿지만 나는 아직 정말로 이해하지 못하고있다. 감사.

  • +0

    Redmine 문제가 아닌 서버 문제 (apache, ngnix)처럼 들립니다. 여기를보세요. https : //stackoverflow.com/questions/24528211/chrome-refuses-to-execute-an-ajax -script-due-wrong-mime-type –

    +0

    나와 같은 외부 API를 사용하려고하면이 기능이 작동하지 않습니다 –

    +0

    서버는 콘텐츠 유형으로'application/javascript'를 반환해야합니다. [링크] (https://stackoverflow.com/questions/111302/best-content-type-to-serve-jsonp) –

    답변

    1

    감사합니다. 그러나 나는 의사 소통만으로 문제를 해결했다. Redmine API는 jsonp를 허용하지만 기본적으로이 기능은 비활성화되어 있습니다. 그래서, 도메인 jsonp 요청을 만들 수 없다면 그것을 허용하지 않습니다. 안돼.

    행복하게, 나는 액세스를 시도한 redmine 도메인 관리자를 만난다. 그리고 나는 그것을 허용하도록 요청했습니다. (docs) allowed jsonp입니다. 그리고 그는 그것을 만들었고 나는 나의 문제를 해결했습니다.

    0

    Chrome REST 클라이언트에서 제대로 작동한다는 사실은 이미 Redmine API의 문제가 아니라 JavaScript 코드의 문제를 지적합니다.

    파이어 폭스 콘솔에서 오류가 발생했을 때 디버거가 가리키는 코드 줄을 확인 했습니까? 어쩌면 그 파일의 다른 JS 코드에 오류가있을 수도 있습니다 ...

    GET 요청은 일반적으로 dataType 및 contentType을 넣지 않고도 꽤 잘 작동합니다. 오류 기능을 사용하면 잘못 될 일을 디버깅 할 수 있습니다.

    이 같은 노력에 대해합니다 ('.json'확장은 이미 돌아 가야 원하는 형식으로 레드 마인을 말한다) 방법 : 모든

    $.ajax({ 
        url: "http://redmine_domain_sample/users/current.json", 
        type: "GET", 
        error: function(jqXHR, textStatus, errorThrown) { 
        if (jqXHR.status == 200) { 
         alert(textStatus); 
         alert(errorThrown); 
        } else { 
         alert(textStatus); 
         alert(errorThrown); 
        } 
        }, 
        success: function(response, textStatus, jqXHR) { 
        alert(response.firstname); 
        exibeProjetosRedmine(); 
        } 
    });