質問: 最近勉強を始めたものです。 今ajaxを使ってフォームの入力内容をpostで送信してPHPで処理。その処理した変数をajax内の通信成功時にdoneの中で使う。というような流れを作っています。 今のところ、ajax通信自体は上手くいっているようでフォームの入力内容もとれているようなのですが、doneの部分でdataをコンソールログで出すとそのページのhtmlが丸々返ってきてしまっています。また どのように対処すればいいのでしょうか。 今の段階では取り敢えずフォームの1項目に関してPHPで変数にしてajaxに返すというような処理を行っています。 ### 該当のソースコード ``` $(function(){ $("#makeQr").click( function(){ $.ajax({ url:location.href, type: "POST", data: { "target": $("#target").val(), "title": $("#title").val(), "emailContent": $("#emailContent").val(), }, timeout: 3000, datatype: "json", }).done(function(data){ console.log(data); console.log("ok"); }).fail(function(XMLHttpRequest, textStatus, errorThrown){ console.log("miss" + XMLHttpRequest + textStatus + errorThrown); console.log(data); }) }) }) ``` ``` ``` ### 試したこと ちなみにphpのエコーで返してajaxでパースすると以下のようなエラーコードが出てしまいます。 ``` Uncaught SyntaxError: Unexpected token < in JSON at position 0 ``` またPHPとajaxを単一のファイルにしていたのがまずいのかと思いPHPを別のファイルに移しましたが変わりませんでした。
回答: `url:location.href` とあるので、HTMLページ自身へのPOSTになっているのではないですか?