0
我有发送一个XMLHttpRequest来一个JsonService麻烦。 当我通过谷歌浏览器进入链接时,它正在工作。 当我使用这个命令铬(https://i.imgur.com/UxAd8oe.png)它也在努力。但是我需要让它在没有这些课程的情况下工作。 这是我的XmlHttpRequest:XMLHttpRequest来JsonService失败
jQuery(document).ready(function() {
$("#btnSendEmail").click(function() {
var message = new Model.Message();
message.From = document.getElementById("txtEmail").value;
message.Subject = "Contact Formulier: " + document.getElementById("txtSubject").value;
message.Html = "Telefoon: " + document.getElementById("txtTelephone").value + "<br/>" +
"Bedrijf: " + document.getElementById("txtCompany").value + "<br/><br/>" +
"Bericht: " + "<br/>" +
document.getElementById("txtMessage").value;
message.Recipients = [];
var recipient = new Model.Recipient();
recipient.Email = "[email protected]";
recipient.Name = "Pieter Borgmans";
recipient.Type = "To";
message.Recipients.push(recipient);
var params = JSON.stringify(message);
var url = "http://localhost:26294/JsonService.svc/Test";
var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.contentType = "application/json; charset=utf-8";
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onload = function() {
if (this.status === 200) {
var response = (this.responseText) ? JSON.parse(this.responseText) : this.responseText;
$("#lblSendMailMessage").text = response;
} else {
$("#lblSendMailMessage").text = xhr.status + ": " + xhr.statusText;
}
};
xhr.onerror = function (onErrorArgs) {
$("#lblSendMailMessage").text = "Error";
};
xhr.send();
});
});
代码在我的服务接口:
[ServiceContract]
public partial interface IBusinessManager
{
[OperationContract]
[FaultContract(typeof (ServiceFault))]
[WebGet(
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.WrappedRequest,
UriTemplate = "Test")]
string Test();
}
而且我在web.config中添加以下代码:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Accept, Content-Type, Depth, User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control" />
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS, TRACE, HEAD" />
<add name="Access-Control-Max-Age" value="1000" />
</customHeaders>
</httpProtocol>
任何人有一个主意?
谢谢!
究竟不能按预期工作,它应该如何工作? – victor175
由于您已经在使用jQuery,为什么直接使用'XmlHttpRequest'?您可以使用[jQuery.get()](https://api.jquery.com/get/),并保存自己很多的麻烦,再加上挂接到它的成功/错误处理程序,方便调试。 –
这是我收到错误消息:XMLHttpRequest的无法加载的http://本地主机:26294/JsonService.svc /测试。预检响应具有无效的HTTP状态码405 当我检查我的网络选项卡上,我可以看到,这正显示出我的要求: 请求URL:http://本地主机:26294/JsonService.svc /测试 请求方法:OPTIONS 状态代码:405不允许的方法 远程地址:[:: 1]:26294 正如你可以看到有一个错误在与挂钩的onload还是你的意思是别的东西? –