

MonacaでAjax通信を行い外部サーバーにあるphp(MySQLを使用するために)を使っています。  
phpを使ってデータベース内の中身を表示させたいです。Ajax通信を行いJsonで受け取っているのですがうまくいかないのでMonaca側とphp側で何かあればアドバイスをお願いします。

「Monaca側」実行結果→console.logでjsが表示，エラーアラートの発生。

[code]

    //口コミのボタンを押すとページ遷移と更新を同時に行う 
    function anime1() {
        app.slidingMenu.setMainPage('page1.html', {closeMenu: true});
    }
    
    function anime2() {
        console.log("jh");
          // Ajaxで～.phpを利用してDBにアクセス
            $.ajax({
                type: "POST",
                scriptCharset: 'utf-8',
                dataType: "jsonp",
                url: サーバーにある～.phpファイル名
    
           }).done(function(data){
            // DBから引っ張ってきたデータを料理名を選択するoptionにセット
             console.log("投稿完了！");
             // for (var i = 0; i < data.length; i++){
             // $('.food_name_box').append($('<option>').html(data[i]["japanese"]).val(data[i]["id"]));
             // }
    
    
           }).fail(function(data){
               alert('error!!!');
               //console.log("error");
           });
    }
    
[/code]

「php側」

[code]

    <?php
    
    //DB接続
    require_once('config.php');
    
    // $text1 = $_POST["sender_name"];
    // $text2 = $_POST["sender_mail_address"];
    // $text3 = $_POST["contact_body"];
    // $text4 = $_POST["time"];
    
    
    $result=$pdo->prepare("select*from 13DB066_test");
    $result->execute();
    $result_value=$result->fetchAll();
    
    header('Content-type: application/json');
    header('Content-type: html');
    echo json_encode( $result_value );
    //var_dump($result_value);
    
[/code]


CC BY-SA 3.0
2015-12-17T10:51:00.013
20114
2015-12-17T11:43:09.597
2015-12-17T11:17:39.217
9566
13721
question
javascript php monaca json ajax
MonacaでAjax通信を行い外部サーバーにあるphp(MySQLを使用するために)を使っています。 phpを使ってデータベース内の中身を表示させたい


JSON と JSONP をお間違えではありませんか？

参考 <http://tsujimotter.info/2013/01/03/jsonp/>

`dataType` に `jsonp` が指定されていますが、PHP側で出力しているのはただのJSONです。

よって `dataType: 'json'` と指定すべきですし、スクリプトとして読み込む際のエンコーディングを指定する `scriptCharset`
も不要です。

またPHP側で `header('Content-type: ...')` を二回実行しているのは何故でしょうか。見たところ後者が余分だと思います（そもそも
`html` は正しいMediaTypeではありませんが）。


CC BY-SA 3.0
2015-12-17T11:43:09.597
20117
2015-12-17T11:43:09.597
8000
20114
answer