Javascript Ajax Post请求总是运行错误函数,尽管curl到相同的url也可以正常工作

Javascript Ajax Post请求总是运行错误函数,尽管curl到相同的url也可以正常工作,javascript,jquery,json,ajax,curl,Javascript,Jquery,Json,Ajax,Curl,我使用ajax的post方法从服务器返回json结果。但是当我单击HTML页面上的按钮时,ajax函数总是运行error函数,也就是说,它总是显示警告“error”。我将我的HTML正文粘贴到这里供您审阅 <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title>Form</title>

我使用ajax的post方法从服务器返回json结果。但是当我单击HTML页面上的按钮时,ajax函数总是运行error函数,也就是说,它总是显示警告“error”。我将我的HTML正文粘贴到这里供您审阅

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Form</title>
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head> 
<body>
    <div id="main">
        <div id="header">

        </div>
        <div id="form">
            <table style="display:inline-block">
                <tr>
                    <td>Select a user:</td>
                    <td>
                        <select id="SelectUser" style="width:150px">
                            <option>User 1</option>
                            <option>User 2</option>
                            <option>User 3</option>
                            <option>User 4</option>
                            <option>User 5</option>
                            <option>User 6</option>
                            <option>User 7</option>
                            <option>User 8</option>
                            <option>User 9</option>
                            <option>User 10</option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>Action:</td>
                    <td>
                        <select id="SelectAction" style="width:150px">
                            <option>Buy</option>
                            <option>Sell
                            <option>
                        </select>
                    </td>
                </tr>
                <tr>
                    <td>Quantity:</td>
                    <td><input id="txtQty" type="text" /></td>
                </tr>
                <tr>
                    <td colspan="2" style="text-align:right">
                        <input id="btnClear" type="button" value="Clear" style="width:100px" onclick="alert('Clear')" />
                        <input id="btnTrade" type="button" value="Trade" style="width:100px" onclick="getTrade()" />
                    </td>
                </tr>
            </table>
            <div id="data">
                <b>Recommendations</b>
                <hr />
            </div>
        </div>
    </div>

    <script>
        function getTrade() {               
            $.ajax({                
                type: "POST",
                url:  "http://localhost:8000/queries.json/",    
                data: {user: "1", num: 4},
                success: function (resultData) {                    
                    alert("resultData");                 


                },
                error: function (xhr,thrownError){
                    alert("error");
                }
            }); 

        }
    </script>   
</body>
</html>

形式
选择一个用户:
用户1
用户2
用户3
用户4
用户5
用户6
用户7
用户8
用户9
用户10
行动:
购买
卖
数量:
建议

函数getTrade(){ $.ajax({ 类型:“POST”, url:“http://localhost:8000/queries.json/", 数据:{用户:“1”,数量:4}, 成功:函数(resultData){ 警报(“结果数据”); }, 错误:函数(xhr、thrownError){ 警报(“错误”); } }); }
当我运行curl请求时(curl-H“Content-Type:application/json”\ -在我的git shell中,d'{“user”:“1”,“num”:4}')运行良好,并按预期返回结果


有什么想法吗?

当我使用Firefox firebug调试问题时,我了解了错误的详细信息,包括:

已阻止跨源请求:同一源策略不允许读取位于的远程资源。(原因:缺少CORS标头“访问控制允许原点”)

看起来我需要在客户端和服务器上启用CORS。这将解决问题


感谢SLaks为我指明了正确的方向。

queries.json是一个json文件或控制器方法吗?您可能遇到了相同的源策略。@user2181397-我不确定queries.json文件是否正确。“我怎么知道它是不是一个控制器?”SLaks-你能解释一下那是什么吗?我怎样才能正确地做到这一点?谢谢