我想在混合应用程序中使用使用JQuery的Web服务。为此,我使用AngularJS创建了html页面。如何使用JQuery和AngularJS调用托管在IIS中的Web服务
<form id="form1" ng-controller="EmpCtrl" ng-submit="save()">
<div style="font-family: Verdana; font-size: 12px; margin-left: 450px;">
<table>
<tr>
<td style="text-align: right;">Id :
</td>
<td>
<input type="text" id="txtEmpID" ng-model="EmpID" />
</td>
</tr>
<tr>
<td style="text-align: right;">First Name :
</td>
<td>
<input type="text" id="txtEmpFirstName" ng-model="EmpFirstName" />
</td>
</tr>
<tr>
<td style="text-align: right;">Last Name :
</td>
<td>
<input type="text" id="txtEmpLastName" ng-model="EmpLastName" />
</td>
</tr>
<tr>
<td style="text-align: right;">Address :
</td>
<td>
<textarea id="txtEmpAddress" cols="20" rows="2" ng-model="EmpAddress"></textarea>
</td>
</tr>
<tr>
<td style="text-align: right;">City :
</td>
<td>
<input type="text" id="txtCity" ng-model="EmpCity" />
</td>
</tr>
<tr>
<td style="text-align: right;">Pin Code :
</td>
<td>
<input type="text" id="txtPinCode" ng-model="EmpPincode" />
</td>
</tr>
<tr>
<td style="text-align: right;">State :
</td>
<td>
<input type="text" id="txtState" ng-model="EmpState" />
</td>
</tr>
<tr>
<td style="text-align: right;">Country :
</td>
<td>
<input type="text" id="txtCountry" ng-model="EmpCountry" />
</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;">
<input type="submit" id="btnSubmit" value="Submit" />
</td>
</tr>
</table>
</div>
<div>
<input type="button" id="btnFetch" value="Fetch" ng-click="getEmployee()"/>
</div>
<div id="divTesting">
</div>
并创建JQuery。我在其中定义NG-应用和NG-控制器:
function EmpCtrl($scope)
{
$scope.getEmployee = function() {
$.ajax({
type: "POST",
url: 'http://www.athithi.com/EmpService.asmx/GetEmployeeDetails',
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
var TableContent =
"<table border='0'>" +
"<tr>" +
"<td>ID</td>" +
"<td>First Name</td>" +
"<td>Last Name</td>" +
"<td>Address</td>" +
"<td>City</td>" +
"<td>PinCode</td>" +
"<td>State</td>" +
"<td>Country</td>" +
"</tr>";
for (var i = 0; i < data.d.length; i++) {
TableContent += "<tr>" +
"<td>" + data.d[i].ID + "</td>" +
"<td>" + data.d[i].FirstName + "</td>" +
"<td>" + data.d[i].LastName + "</td>" +
"<td>" + data.d[i].Address + "</td>" +
"<td>" + data.d[i].City + "</td>" +
"<td>" + data.d[i].Pincode + "</td>" +
"<td>" + data.d[i].State + "</td>" +
"<td>" + data.d[i].Country + "</td>" +
"</tr>";
TableContent += "</table>";
$("#divTesting").html(TableContent);
}
},
error: function (msg) {
alert("Error");
}
});
};
$scope.save = function() {
$.ajax({
type: "POST",
url: "EmpService.asmx/InsertEmployee",
data: "{'empID':'" + $scope.EmpID + "','firstName':'" + $scope.EmpFirstName + "','lastName':'" + $scope.EmpLastName + "','address':'" + $scope.EmpAddress + "','city':'" + $scope.EmpCity + "','pincode':'" + $scope.EmpPincode + "','state':'" + $scope.EmpState + "','country':'" + $scope.country + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d);
},
error: function (msg) {
alert("err hello");
}
});
};
}
它的做工精细当我使用网址:EmpService.asmx/InsertEmployee
和网址:EmpService.asmx/GetEmployeeDetails
但是当我使用托管IIS Web服务(http://www.athithi.com/EmpService.asmx/InsertEmployee('')
和http://www.athithi.com/EmpService.asmx/GetEmployeeDetails
)这是行不通的。正常。
尝试更换您的埃罗,以获得实际的错误信息用'console.log(msg)'调用'alert(“err hello”)''回调。您可能会得到一个错误消息,看起来像'No'Access-Control-Allow-Origin'头部存在于请求的资源中。' – 2014-10-09 05:35:44
Isim先生我收到相同的错误消息(No'Access-Control-Allow -Origin'标题出现在请求的资源上)。我们如何消除这个错误。 – 2014-10-10 05:45:59
只要说,Angular拥有你需要的所有东西,为什么你还会使用jQuery。对于DOM操作,Angular比你所做的要好得多。你不必担心它。 – 2014-10-10 06:58:21