AjaxでPHP関数を動かした際、戻り値が期待した値になりません。

次のような単純なAjaxを実装しています。実行時、alertに「message」という文字列が出てほしいのですが、大量のHTMLがかえってきます。何がおかしいのでしょうか?

JavaScript
jQuery.ajax({
type: "POST",
url:url,
data: {
// jsonで送信
},
success: function(msg){
alert(msg);
});

PHP
function hoge(){
echo "message";
die;
}

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/01/06 13:20:04

回答1件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

無指定の状態ではhtml/textとして処理されてしまうので、
header送信で出力形式を指定しつつ、指定した形式での出力を行います。

プレーンテキストで返す例

<?php
header('Content-type: text/plain; charset=utf-8');
echo 'hogehoge';

配列(json)で返す例

<?php
header('Content-Type: application/javascript; charset=utf-8');
$a = array( 'a' => 'b', 'c' => 'd' );
echo json_encode( $a );

http://php.net/manual/ja/function.header.php
http://www.php.net/manual/ja/ref.json.php
http://php.net/manual/ja/function.json-encode.php

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません