从Angular或Javascript调用AMFPHP

时间:2015-10-17 15:36:12

标签: javascript jquery angularjs amfphp

您好我在Flash中有一个项目,它调用AMFPHP进行服务器端集成。现在我想要与Angular JS或任何Javascript相同的连接。那么有可能实现这一目标吗?实际上我不想更改服务器,因为有些问题。我可以改变客户端。如果可能,请告诉我。我尝试了http://www.bennadel.com/blog/2612-using-the-http-service-in-angularjs-to-make-ajax-requests.htm网址,但没有成功。

2 个答案:

答案 0 :(得分:0)

我可以为您提供jQuery ajax调用。它几乎就像这样简单:

<script language="javascript">
    function call(){
        /**
         * notes:
         * - parameters here could be left empty, they are just here to make the code easier to adapt
         * - $.post method here is used because amfPHP JSON plugin expects data as POST. So can't use more obvious getJSON
         * - if you always use the same parameters, you can do without json2.js, by setting for example
         * callData = '{"serviceName":"PizzaService", "methodName":"getPizza","parameters":[]}'
         */

        var callData = JSON.stringify({"serviceName": "YourController", "methodName": "getSomething", "parameters": []});
        $.post("../amfphp/?contentType=application/json", callData, onSuccess);

    }

    function onSuccess(data){
        alert("pizza : " + data);
    }
</script>

这里重要的关键注意事项是:

?contentType=application/json

在URL查询中。这将告诉AMF您希望它返回JSON格式而不是AMF请求。

现在,既然你正在使用AngularJS,那么你应该注意的另一件事是angular already sets ajax communication with applicatio/json。所以我无法告诉你amfPHP将如何处理这个问题。就个人而言,我相信如果查询应用程序/ json的jQuery调用成功,那么来自AngularJS的Ajax调用将自动运行。如果没有,您可以尝试调试amfPHP并尝试查看是否正在使用$_POST$_REQUEST

您可能会找到一些additional information about angularJS and PHP here

答案 1 :(得分:-1)

您应该可以使用我上面链接的库和

$httpProvider.defaults.transformRequest
$httpProvider.defaults.transformResponse

您可以在角度配置块中配置$ http提供程序。像

这样的东西
angular.module('myApp',[]).config(function($httpProvider){
  $httpProvider.defaults.transformRequest = AMF.stringify;
  $httpProvider.defaults.transformResponse = AMF.parse;
});