#c# #jquery #ajax #wcf
#c# #jquery #ajax #wcf
Вопрос:
function SendEditCommand()
{
jQuery.ajax({
url: 'http://localhost:15478/Service.svc/GetTest',
type: 'GET',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function () {
alert('success');
},
error: function(request, status, error) {
alert(error);
}
});
}
jQuery(document).ready(function () {
SendEditCommand();
});
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<connectionStrings>
<add name="Entities" connectionString="metadata=res://*/Data.TechieCMS.csdl|res://*/Data.TechieCMS.ssdl|res://*/Data.TechieCMS.msl;provider=System.Data.SqlClient;provider connection string=amp;quot;Data Source=localhostmssql2008;Initial Catalog=TechieCMS;Integrated Security=True;MultipleActiveResultSets=Trueamp;quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
<system.serviceModel>
<services>
<service name="DefaultService" behaviorConfiguration="DefaultServiceBehavior">
<endpoint address="" binding="webHttpBinding" contract="Techie.CMS.Business.ContentProvider" behaviorConfiguration="DefaultEndpointBehavior" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="DefaultEndpointBehavior">
<enableWebScript />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="DefaultServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
</system.serviceModel>
</configuration>
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ContentProvider
{
[OperationContract]
[WebGet()]
public string GetTest()
{
return "Test";
}
}
Комментарии:
1. Вы уверены, что служба запущена в указанном местоположении?
2. Как выглядит ваш global.asax?
Ответ №1:
Я предполагаю, что ему не нравится порт в URL. Все остальное верно. Используете ли вы IE? Работает ли это с другими браузерами? Другие люди с такой же проблемой использовали IE, и это работает в Firefox.
Возможно, попробуйте добавить переменную data и изменить ее на POST? Некоторые говорят, что это решает проблему.
Ответ №2:
Спасибо всем вам за ваши ответы, они, несомненно, были актуальны и стали частью головоломки. Ключевой проблемой было <имя службы=»DefaultService»… Я думал, что это просто должно было быть имя, которое я выбираю. Выяснилось, что это должно быть полное имя класса, который реализует контракт.