您必须使用 JSONP 方法并将JSON_CALLBACK
关键字插入到您的 url 作为回调函数。
app.factory("VaaniEstimateService", function($resource) {
return $resource("http://128.34.32.34:8080/enquiry?callback=JSON_CALLBACK", {}, {
get: {
method:'JSONP'
},
isArray:false
}).get({
profile:"OLTP",
security:"rsh",
availability:"4",
"performance.TRANSACTION_PER_SEC":1000,
"performance.RESPONSE_TIME":200,
"performance.CONCURRENT_CONNECTION_COUNT":500,
"performance.STORAGE_SIZE":200,
"performance.TOTAL_CONNECTION_COUNT":500
}, function (response) {
console.log('Success, data received!', response);
});
});
您的参数将作为查询参数发送。Angularjs 会自动为回调生成一个全局函数,并将其名称替换为JSON_CALLBACK
关键字。您的服务器必须通过调用带callback
参数发送的函数将 json 作为 javascript 代码返回。例如,AngularJS 将向该 url 发出 GET 请求:
http://128.34.32.34:8080/enquiry?callback=angular.callbacks._0?availability=4&performance.CONCURRENT_CONNECTION_COUNT=500&performance.RESPONSE_TIME=200&performance.STORAGE_SIZE=200&performance.TOTAL_CONNECTION_COUNT=500&performance.TRANSACTION_PER_SEC=1000&profile=OLTP&security=rsh
您的服务器必须返回这样的响应:
angular.callbacks._0({"estimate" : 1600,"quoteid" : "Q1234"});
希望这足以让您了解 jsonp 的工作原理。