テキストエリアに Google アナリティクス コードを入力するようユーザーに求めるフォームがあります。次に、この文字列を ajax ポストに渡すと、無効なオブジェクトを渡しているというエラーが表示されます。(エラー メッセージは非常に長いため、ここでは貼り付けません。)
予想どおり、Google アナリティクスのコードは次の形式になっています。
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'some_number']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
そして、これを使用してサーバーに投稿します。
$.ajax({
type: "POST",
url: "Settings.aspx/setStats",
data: "{'skey': 'ga_code', 'sval':'" + el.val() + "'}",
dataType: "json",
contentType: "application/json; charset=utf-8"
}); // el.val() being the google analytics code..
エラーなしでこれを投稿するにはどうすればよいですか? また、ユーザーが更新する必要がある場合は、私もそれを取得する必要があります..それを受け取るときにも同じ問題が発生しますか?