AngularJS ngResource使用JSON向服务器发送数据并获得响应

AngularJS ngResource使用JSON向服务器发送数据并获得响应,json,angularjs,ngresource,Json,Angularjs,Ngresource,在我的angular JS应用程序中,我需要向服务器发送数据: "profile":"OLTP", "security":"rsh", "availability":"4", "performance": { "TRANSACTION_PER_SEC":1000, "RESPONSE_TIME":200, "CONCURRENT_CONNECTION_COUNT":500, "STORAGE_SIZE":200, "TOTAL_CONNECTIO

在我的angular JS应用程序中,我需要向服务器发送数据:

"profile":"OLTP", "security":"rsh", "availability":"4", "performance": { "TRANSACTION_PER_SEC":1000, "RESPONSE_TIME":200, "CONCURRENT_CONNECTION_COUNT":500, "STORAGE_SIZE":200, "TOTAL_CONNECTION_COUNT":500 } “配置文件”:“OLTP”, “安全”:“rsh”, “可用性”:“4”, “业绩”:{ “每秒交易量”:1000, “响应时间”:200, “并发连接计数”:500, “存储大小”:200, “总连接数”:500 } 作为回报,我会得到

{"estimate" : 1600,"quoteid" : "Q1234"} {“估计”:1600,“quoteid”:“Q1234”} 我试图用$resource来实现这一点,但我在语法方面迷失了方向

app.factory("VaaniEstimateService", function($resource) { var requestURL = "http://128.34.32.34:8080/enquiry"; return $resource(requestURL, {callback: 'JSON_CALLBACK'}, { get: { method:'JSON'}, isArray:false }); }); 应用程序工厂(“VaaniEstimateService”),功能($resource){ var requestURL=”http://128.34.32.34:8080/enquiry"; 返回$resource(requestURL,{callback:'JSON_callback'},{get:{method:'JSON'},isArray:false}); });
你能提供一些东西让我走上正确的道路吗。

你必须使用JSONP方法,并在你的url中插入
JSON\u CALLBACK
关键字作为回调函数

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\u 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的工作原理。

您的页面域与
requestURL
不同吗?是否要作为JSONP方法进行请求?requestURL将不同。JSONP方法会很好,你能给我一些细节吗。谢谢你。我明白了,现在我明白了。如果一个页面在同一个域上,我请求的是JSON,我可以问你一个解决方案吗?如果你从URL中删除
callback
参数,并将方法设置为
GET
(实际上这是默认方法,所以不必设置),使用JSON资源一切都会很好。非常感谢。它工作得太棒了!现在我了解了JSON和JSONP之间的区别。