У меня есть простой ответ Hello World на стороне сервера углового проекта.Код, который у меня есть в PHP, работает нормально (как и все, что у меня есть), но когда я хочу поместить тот же код в VB.NET, он выдает ошибку.
Вот код из PHP:
<?
header("Access-Control-Allow-Origin: *");
header("Access-Control-Max-Age: 1000");
header("Access-Control-Allow-Methods: POST");
header('Access-Control-Allow-Headers: X-Requested-With, content-type, access-control-allow-origin, access-control-allow-methods, access-control-allow-headers');
ini_set("allow_url_fopen", true);
class mySample{
var $Msg;
}
$smp= new mySample;
$smp->Msg= "Hello world";
$encoded= json_encode($smp);
echo $encoded;
exit;
?>
Что отвечает в консоли JS: {Msg: "Hello world"}
А вот код VB.NET
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim smp As New mySample
smp.Msg= "Hello World"
Dim serializar as New JavaScriptSerializer()
Dim serializedResult = serializer.Serialize(smp)
Response.Write(serlizedResult)
Public Class mySample
Public Msg As String
End Class
, который в консоли JS ответил: SyntaxError: Неожиданный токен <в JSON в позиции 25 </p>
Вот вызов из Angular:
getHello(){
this.theService.tryHello()
.subscribe(
(res)=>{
console.log("Response: ", res);
},
err => {
console.log("Error: ", err);
}
);
}
И служба
tryHello(): Observable<any>{
let theRequest: Request = new Request;
return this.http.post<any>(this.serviceURL, {data:theRequest}, {responseType: 'json'});
}
Если вы запускаете оба кода поих соответствующие URL-адреса они оба возвращают один и тот же вывод JSON {"Msg": "Hello world"}, но если вы вызываете их через службу Angular, он возвращает ошибку
Благодаря предложению Anbyer я проверил ответ ввкладка Сеть, и она пишет весь ответ:
{"Msg":"Hello world"}
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
Prueba Angular
</title><meta http-equiv="Content-Type" content="application/json;" />
</head>
<body>
<form method="post" action="./Angular.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="7hDt0OESfSW/sWZ4gxieAgY/Lt6zwUgec+uMjusifBwfSMANmIjbPh40/H45bWdn8GPlP/8sJFktsUA4QvKmFOuNKVSp4+2MTalY4fgDiBs=" />
</div>
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="BCA76F28" />
</div>
<div>
</div>
</form>
</body>
</html>
Я предполагаю, что весь проект настроен на вывод документа HTML, какие-либо предложения?