0

我需要从 html 页面向不同域中的 web 服务接口发送请求。有时,需要同步请求。例如:使用用户名和密码登录并在webservice确认后得到响应。

但是,我使用了jsonp,发现它无法进行同步请求。(html页面和webservice都在我的控制之下)

有什么好主意吗?提前致谢。

4

2 回答 2

2

如果您发送 header('Access-Control-Allow-Origin: *') 您可以只使用标准的非异步 $.ajax 对象。

<?php
    header('Access-Control-Allow-Origin: *');
?>
<html>
...
</html>
<script type="text/javascript">
    $(document).ready( function()
    {
        $("#someID").on('click', function()
        {
            var username = 'username';
            var passwd = 'password';

            $.ajax(
            {
                type:'post,
                dataType:'json',
                url:'http://yoursite.com/web-service.php',
                data:{username:username,password:passwd},
                async:false,
                success:function(data){},
                error:function(jqXhr, textStatus, errorThrown){}
            });
        });
    });
</script>
于 2012-12-29T01:40:34.060 回答
0

async:false已被弃用,并且有充分的理由。

您的登录函数需要重构,以便您在成功回调中使用响应数据。

您的代码需要执行以下操作:

$.ajax({
    /* other options*/
     success:function( response){
          if( response.status=='ok'){
             /* run sucessful login code*/
          }else{
             /* message to user*/
          }
     }

})
于 2012-12-29T02:32:08.423 回答