2017-10-25 38 views
0

を使用してJqueryを使用してリクエストを送信しようとしています(support for jsonp)。JSONPを使用したRedmine APIリクエストで、JSONPを使用してMIMEタイプエラーが発生しました

私はJqueryでリクエストを行う方法を試しました。私はすでに「MIMEタイプ」のエラーを探して答えを使って解決しようとしていますが、コンソールのスローエラーは同じです(Google 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.

とFirefoxで:本当に私のデータを返すJSONにapponiting

SyntaxError: missing ; before statement

。これは私のコードである

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 Advanced REST Client)から行うと動作しますが、ローカルホストのLaravelアプリケーションではこのような要求はありません。

リクエストは200 okを返しますが、Jqueryリクエストは成功関数にはなりません。

  • URL

にいくつかのヘッダー

  • パスformat=jsonを追加するが、いけない仕事:私は好きで検索するときに、私は実際にも、いくつかの解決策を試してみました。 私は間違っていますか?私はそれが単純なエラーだと信じていますが、私はまだ本当に理解していません。ありがとう。

  • +0

    Redmineの問題ではなく、サーバーの問題(apache、ngnix)のように聞こえる... https://stackoverflow.com/questions/24528211/chrome-refuses-to-execute-an-ajax -script-due-to-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コードの問題を既に指摘しています。

    Firefoxのコンソールでエラーが表示されたら、デバッガでどのコード行を指しているのか確認しましたか?多分、そのファイル内の他の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(); 
        } 
    }); 
    
    関連する問題