Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript函数向服务器发送Json对象_Javascript_Ajax_Jsonobject - Fatal编程技术网

使用javascript函数向服务器发送Json对象

使用javascript函数向服务器发送Json对象,javascript,ajax,jsonobject,Javascript,Ajax,Jsonobject,我尝试向远程服务器发送json对象,但没有收到成功消息。请检查此代码有什么问题: function sendSMS(){ var input = '{"header":"****","****":*****,"****":"*****"}'; var url = "https://**********&username=*****&password=*******"; jQuery.ajax({ type: "POST",

我尝试向远程服务器发送json对象,但没有收到成功消息。请检查此代码有什么问题:

  function sendSMS(){
    var input = '{"header":"****","****":*****,"****":"*****"}';
    var url = "https://**********&username=*****&password=*******";

    jQuery.ajax({
        type: "POST",
        crossDomain:true,
        url: url,
        data: JSON.stringify(input),
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        async: false,
        success: function(){
           alert("success");
        }
    });
    }
    // html code
    <html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
   <script type="text/javascript" src="http://www.json.org/json2.js"></script>
<script type="text/javascript" src="sendSMS.js"></script>
</head>

<body> 
<button onclick="sendSMS()">sendSMS</button>
</body>
</html>
函数sendSMS(){ 变量输入='{“头”:“****”,“****”:****,“****”:“****”}'; var url=“https://**********&用户名=****&密码=*******”; jQuery.ajax({ 类型:“POST”, 跨域:是的, url:url, 数据:JSON.stringify(输入), contentType:'application/json;charset=utf-8', 数据类型:“json”, async:false, 成功:函数(){ 警惕(“成功”); } }); } //html代码 发送短信
请提供任何帮助。

您只需将ajax调用更改为:

function sendSMS(){
var input = '{"header":"Ooredoo","msisdn":21620117297,"SMS":"Hello"}';
var url = "https://**********&username=*****&password=*******";

jQuery.ajax({
    type: "POST",
    crossDomain:true,
    url: url,
    data: JSON.parse(input),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    async: false,
    success: function(){
       alert("success");
    }
});
}
主要的更改是JSON.stringify到JSON.parse。这将帮助您将JSON数据解析为JSON对象,第二个更改是实际的负载,您在Hello之后错过了一个“结束”

如果您有任何其他问题,只需问:)


另外,我建议不要将用户名和密码作为querystring参数发送,使用具有适当负载的POST请求,最后,如果您可以通过ssl,则不能发送,因为除非远程服务器允许跨源请求。名称问题我没有收到成功消息:(好的,但这些更改是必需的。现在,您在控制台上收到任何错误吗?调用者和服务在同一台服务器上吗?不,服务在远程服务器上,我有它的url、用户和密码。控制台中有错误:加载资源失败:服务器以404(未找到)的状态响应)加载资源失败:服务器响应状态为500(内部服务器错误)第一个错误意味着您要点击的url不存在。第二个错误,url存在,但服务器上发生了一些事情,可能是一个例外。不知道为什么您会收到这两个例外,因为几乎总是独占的。如果服务是您的,您可以/想要在github上查看我,我可以尝试使用用户/密码,而不是我之前的评论,我没有看到您的代码有任何错误服务不是我的,可能是用户或密码错误,我会检查。非常感谢您的帮助:)