一般的なhtmlファイル(モバイルにロードされる)からサーバーにajaxリクエストを送信しようとしていますが、ここでいくつかの問題が発生しています。
RestClientを使用する場合、WizToolsから、bodyを使用してjson POSTコマンドを簡単に作成し、{"email":"myemail", "password":"mypassword"}ヘッダー"Content-type":"application/json"とを設定できます"Accept":"application/json"。
しかし、ブラウザからcontentTypeを追加すると、POSTではなくOPTIONSメソッドが送信され、サーバーはPOSTを期待しています。contentTypeタグを削除すると、リクエストはPOSTで問題なく実行されますが、サーバーはそれをJSONとして認識しないため、リクエストをブロックします。
なぜこれが起こるのですか?これを解決してユーザーのデータを一覧表示するにはどうすればよいですか?
<html>
<head>
    <script src="jquery-1.7.2.min.js"></script>
    <script src="jquery.mobile-1.2.0-alpha.1.min.js"></script>
    <script>
function runAjax() {
var url_p = "https://myserver/list";
var emailVal = "email@email.com"
var passwordVal = "mypwd"
  $.ajax({
type: 'POST', 
url: url_p,
dataType: "application/json",
contentType: "application/json; charset=utf-8",
data: { "email": emailVal, "password": passwordVal },
success: function (data, textStatus, jqXHR) {
                                            $("#result").html(data);
        },
error: function(jqXHR,error, errorThrown) {  
               if(jqXHR.status&&jqXHR.status==400){
                    alert(jqXHR.responseText); 
               }else{
                   alert("Something went wrong");
               }
          }, 
dataType: "json"
});
}
function resetValue(){
        $("#result").html("");
    }
</script>
</head>
<body>
    <button onclick="runAjax()">Post Ajax call</button>
    <button onclick="resetValue()">Reset value</button>
    <p>Result</p>
    <p id="result"></p>
</body>
</html>
ありがとう
編集
これはAjaxのクロスドメインの問題のようです。それ以来、データ型としてjsonpを使用しようとしましたが、HTTPはPOSTではなくGETリクエストを使用します...
2010年には、ドメイン間でjsonpでPOSTを使用できなかったことがわかりました...今はそうなのだろうか。
編集2
私はこのajaxコード(Pedro Carmonaのクレジット)を使用することになりました:
<html>
<head>
    <script src="jquery-1.7.2.min.js"></script>
    <script src="jquery.mobile-1.2.0-alpha.1.min.js"></script>
    <script>
    function rpc_call(){
        var http = new XMLHttpRequest();
        var url = "https://yourserver/list";
        var params = "email=Useremail&password=pwd";
        http.open("POST", url, true);
        http.setRequestHeader("Accept", "application/json");
        http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        http.onreadystatechange = function() {//Call a function when the state changes.
            if(http.readyState == 4 && http.status == 200) {
                $("#resposta").html(http.responseText);
            }
        }
        http.send(params);
    }
    function apagaConteudo(){
        $("#resposta").html("");
    }
    </script>
</head>
<body>
    <button onclick="rpc_call()">Post Ajax call</button>
    <button onclick="apagaConteudo()">Apagar conteudo</button>
    <p>Resposta</p>
    <p id="resposta">____Cena______</p>
</body>
</html>