如何使用Ajax解决“ NS_ERROR_ILLEGAL_VALUE”错误?

我只是写一个小的Ajax框架来实现小项目的可重用性,但是我遇到了一个问题。基本上,我NS_ERROR_ILLEGAL_VALUE在发送请求时收到’

‘错误,我不知道发生了什么。

HTML页面(已修剪但显示错误)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title>Ajax Test</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script type="text/javascript">

var COMPLETE = 4;

var OK = 200;

function GetXMLHttpRequestObject()

{

var XMLHttpRequestObject = false;

if(window.XMLHttpRequest)

{

if(typeof XMLHttpRequest != 'undefined')

{

try

{

XMLHttpRequestObject = new XMLHttpRequest();

}

catch (e)

{

XMLHttpRequestObject = false;

}

}

}

else if (window.ActiveXObject)

{

try

{

XMLHttpRequestObject = new ActiveXObject('Msxml2.XMLHTTP');

}

catch (e)

{

try

{

XMLHttpRequestObject = new ActiveXObject('Microsoft.XMLHTTP');

}

catch (e)

{

XMLHttpRequestObject = false;

}

}

}

else

{

XMLHttpRequestObject = false;

}

return XMLHttpRequestObject;

}

//The Main Ajax Object

function AjaxRequest(p_RequestMethod, p_DestinationURL)

{

this.XMLHttpRequestObject = GetXMLHttpRequestObject();

this.RequestedMethod = p_RequestMethod;

this.DestinationURL = p_DestinationURL;

this.XMLHttpRequestObject.open(this.RequestMethod, this.DestinationURL);

this.OnStateChange = function(Callback)

{

this.XMLHttpRequestObject.onreadystatechange = Callback;

}

this.Send = function(p_Content)

{

this.XMLHttpRequestObject.send(p_Content);

}

this.GetState()

{

return this.XMLHttpRequestObject.readyState;

}

this.GetResponseText = function()

{

return this.XMLHttpRequestObject.responseText;

}

this.GetResponseStatus = function()

{

return this.XMLHttpRequestObject.status;

}

this.GetResponseStatusText = function()

{

return this.XMLHttpRequestObject.statusText;

}

}

var Request;

function GetData()

{

Request = new AjaxRequest('POST', 'http://www.kalekold.net/ajax/Ajax.php');

Request.OnStateChange = StateChange;

Request.Send();

}

function StateChange()

{

window.alert("State: " + Request.GetState());

window.alert("Response: " + Request.GetResponseStatus());

window.alert("Response Text: " + Request.GetResponseStatusText());

if(Request.GetState() == COMPLETE && Request.GetResponseStatus() == OK)

{

Result = Request.GetResponseText();

window.alert(Result);

}

}

</script>

</head>

<body>

<form>

<textarea name="TextArea" rows="10" cols="80"></textarea><br />

<input type="button" value="Load" onClick="GetData();">

</form>

</body>

</html>

PHP文件:

<?php

$XML = <<< PROLOG

<?xml version="1.0" encoding="iso-8859-1"?>

PROLOG;

$XML .= "<results>";

$XML .= "<result>";

$XML .= "<FirstName>Gary</FirstName>";

$XML .= "<SecondName>Willoughby</SecondName>";

$XML .= "<Age>35</Age>";

$XML .= "</result>";

$XML .= "<result>";

$XML .= "<FirstName>Sara</FirstName>";

$XML .= "<SecondName>Gostick</SecondName>";

$XML .= "<Age>35</Age>";

$XML .= "</result>";

$XML .= "</results>";

header("Content-Type: text/xml");

echo $XML;

?>

完整错误:

uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXMLHttpRequest.open]"  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: http://www.kalekold.net/ajax/ :: AjaxRequest :: line 63"  data: no]

Line 0

我只是看不到哪里出了问题,有什么想法吗?

回答:

异常“组件返回的故障代码:0x80070057(NS_ERROR_ILLEGAL_VALUE)”是由于将非法值传递到open方法的调用中引起的。

查看您的代码,我发现拼写错误:

this.RequestedMethod = p_RequestMethod;

this.DestinationURL = p_DestinationURL;

this.XMLHttpRequestObject.open(this.RequestMethod,this.DestinationURL);

请参阅将this.RequestedMethod属性设置为p_RequestMethod,并将this.RequestMethod传递到“

open”方法的调用中。

另外,我建议不要使用开放源代码XMLHttpRequest.js-符合标准的跨浏览器XMLHttpRequest对象实现,而不是创建自己的包装器,该实现还修复了浏览器的本机XMLHttpRequest对象实现的大约20个错误。

以上是 如何使用Ajax解决“ NS_ERROR_ILLEGAL_VALUE”错误? 的全部内容, 来源链接: utcz.com/qa/403562.html

回到顶部