从Angular或Javascript调用AMFPHP

从Angular或Javascript调用AMFPHP,javascript,jquery,angularjs,amfphp,Javascript,Jquery,Angularjs,Amfphp,大家好,我有一个Flash项目,叫做AMFPHP服务器端集成。现在,我想与Angular JS或任何Javascript建立相同的连接。那么有可能实现这一点吗?事实上,我不想改变服务器,因为一些问题。我可以改变客户端。如果可能的话,请告诉我。我尝试了URL,但没有成功。您应该能够使用我上面链接的库,并且 $httpProvider.defaults.transformRequest $httpProvider.defaults.transformResponse 您可以在angular con

大家好,我有一个Flash项目,叫做AMFPHP服务器端集成。现在,我想与Angular JS或任何Javascript建立相同的连接。那么有可能实现这一点吗?事实上,我不想改变服务器,因为一些问题。我可以改变客户端。如果可能的话,请告诉我。我尝试了URL,但没有成功。

您应该能够使用我上面链接的库,并且

$httpProvider.defaults.transformRequest
$httpProvider.defaults.transformResponse
您可以在angular config块中配置$http提供程序。差不多

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

我可以为您提供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>
在URL查询处。这将告诉AMF您希望它返回JSON格式,而不是AMF请求

现在,既然你要和AngularJS一起去,还有一件事你应该注意的是。因此,我无法告诉您amfPHP将如何处理此问题。我个人认为,如果jQuery调用查询应用程序/json成功,那么来自AngularJS的Ajax调用将自动工作。如果没有,您可以尝试调试amfPHP,并尝试查看是否正在馈送
$\u POST
$\u REQUEST


您可能会发现一些。

我不会从一个角度来看待这一点,因为问题最终只是AMF编码的请求/响应以及如何在JS中读取它。如果有一种从JS到AMF的解析和序列化方法,那么您可以将其插入到$http配置中,而不是让它执行常规的JSON解析和字符串化。像这样的东西应该有用
?contentType=application/json