我在 Web 应用程序方面没有太多经验,就在我认为它可以工作时,出现了问题。我在 C# 中在线学习了一个演示,然后创建了我自己的简单版本,它似乎工作正常。它所做的只是接受一些输入并将其传递给 Web 服务。然后,我尝试在更复杂的应用程序中实现类似的 Web 服务,但我收到以下错误,但没有明确说明它为什么不起作用:
the server responded with a status of 500 (Internal Server Error)
这是在浏览器调试器中,并没有说明原因。
网络服务网址:hostlocal:xxxxx/SVC/contact.asmx/ContactMessage
我的网络服务代码如下:
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class contact
Inherits System.Web.Services.WebService
<WebMethod()> _
Public Function ContactMessage(ByVal clientProj As String, email As String, message As String) As String
Dim insert_succes As Integer = load_data("", clientProj, "", "", "", "", "", "", "", "", email, message, "")
Dim passedValidation As Boolean = True
' here you can return a flag which you can handle on client side accordingly
' if you need to
Return If(passedValidation, "1", "0")
End Function
和调用它的javascript:
var dojoXhr;
require(["dojo/parser", "dojo/query", "dojo/dom-class", "dojo/dom-style",
"dojo/on", "dojo/_base/event",
"dojo/request/xhr", "dijit/form/ValidationTextBox", "dojo/domReady!"],
function (parser, query, domClass, domStyle, on, event, xhr) {
parser.parse();
var btnSubmit = document.getElementById('btnSubmit');
function correctInput(div, td, msg) {
domStyle.set(div, 'display', '');
td.innerHTML = msg;
}
on(btnSubmit, 'click', function (e) {
event.stop(e);
var clientProj = dijit.byId("clientName").get("value");
var clientKey = dijit.byId("clientKey").get("value");
var accessToken = dijit.byId("accessToken").get("value");
var lusername = dijit.byId("lusername").get("value");
var lpassword = dijit.byId("lpassword").get("value");
var provid = dijit.byId("provID").get("value");
var feedback = document.getElementById('feedback');
var feedbackTD = query('td.feedback')[0];
domStyle.set(feedback, 'display', 'none');
if (!validateEmail(lusername)) {
correctInput(feedback, feedbackTD, 'Please enter a valid email.');
return;
}
var port = document.location.port;
var xhrPath = '//' + document.location.hostname + (port == (80 || 443) ? '/' : ':' + port + '/') + 'SVC/contact.asmx/ContactMessage';
var msgbody = {
clientProj: clientProj,
clientKey: clientKey,
accessToken: accessToken,
lusername: lusername,
lpassword: lpassword,
provid: provid
};
xhr(xhrPath, {
headers: { "Content-Type": "application/json; charset=utf-8" },
method: 'post',
data: JSON.stringify(msgbody)
}).then(function (data) {
if (data == "0") {
correctInput(feedback, feedbackTD, 'Your message could not be sent.');
return;
}
alert('Bcrap STILL NOT WORKING NOW!');
// show feedback to the user
domStyle.set(feedback, 'display', '');
domStyle.set(document.getElementById('msgBodyOutter'), 'display', 'none');
feedbackTD.innerHTML = "Message was sent successfully.";
});
})
});