#jquery #ajax #service #web
#jquery #ajax #Обслуживание #веб
Вопрос:
Я создал подобный код для доступа к AddNums методов в моем веб-сервисе. Я отправляю данные через веб-сервис для получения выходных данных. но он не дает никакого результата.
<html xmlns="http://www.w3.org/1999/xhtml">
<script src="scripts/Jquery v1.6.4.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#btn").click(function () {
alert('I have been clicked');
$.ajax({
type: "POST",
url: "http://localhost:5554/Service1.svc",
data: "{2,3}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$("#output").text(msg.d);
}
});
});
});
</script>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<input type="button" id="btn" value="Click Me" /> <br /> <br />
<span id="output"></span>
</form>
</body>
</html>
Реализация webserivce. Я протестировал веб-сервис со встроенным клиентом в Visual Studio, он работает отлично.
namespace WcfServiceTest
{
[System.Web.Script.Services.ScriptService]
public class Service1 : IService1
{
public string GetData(int value)
{
return string.Format("You entered: {0}", value);
}
public CompositeType GetDataUsingDataContract(CompositeType composite)
{
if (composite == null)
{
throw new ArgumentNullException("composite");
}
if (composite.BoolValue)
{
composite.StringValue = "Suffix";
}
return composite;
}
[System.Web.Services.WebMethod(BufferResponse = false)]
public int AddNums(int val1, int val2)
{
return (val1 val2);
}
}
}
Комментарии:
1. Вам действительно нужен этот ужасный пробел в вашем имени файла? Обычно люди используют
_
или-
или.
в этом случае.2. Я не очень хорошо знаком с ASP, поэтому могу ошибаться, но разве вы не должны публиковать ‘val1 = 1 amp; val2 = 2’ вместо JSON?
3. И разве вы не должны использовать просто «msg» вместо «msg.d» при выводе результата?
Ответ №1:
Это неправильный путь
data: "{2,3}",
Правильный путь
data: {para1:value1,para2:value2},
для передачи параметра во внешний файл.
Комментарии:
1. Привет, я внес в это изменения, даже тогда он не работает. $(document). ready(функция () { $(«#btn»).click(функция () { оповещение (‘Меня щелкнули’); $.ajax({ тип: «POST», url: » localhost:5554/Service1.svc/AddNums «, данные: ‘{val1:»2″, val2:»3»}’, ContentType: «application / json; charset=utf-8», Тип данных: «json», success: функция (msg) { $(«#output»).text(msg.d); } }); }); });
2. проблема, которую я вижу в вашем коде, заключается в том, что вы заключаете параметр данных в одинарные кавычки, которые не требуются. также после параметра url точка с запятой не требуется. Значения val1 и val2 стали переменными post, потому что вы используете post-запрос, поэтому получите эти переменные в файле вашего сервера, например $ _POST[‘val1’] и так далее.