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