gpt4 book ai didi

javascript - 在新选项卡中打开 Azure Web 应用程序 URL,并将帖子数据作为标题

转载 作者:行者123 更新时间:2023-12-03 04:01:11 24 4
gpt4 key购买 nike

我有一个 azure 的网络应用程序,我想在新选项卡中打开它,并将发布数据作为标题。我使用了以下使用 JavaScript 的代码,该代码成功打开了 azure web URL,但出现错误“无法显示您正在查找的页面,因为正在使用无效方法(HTTP 动词)”并且不同事情是,当我刷新页面时,它会打开

$scope.openurl= function {
const URL = 'https://xyz.azurewebsites.net';
const _data = {
token: "54165165165"
};
submit_post_via_hidden_form(URL, _data);
};

function submit_post_via_hidden_form(url, params) {
var f = $("<form target='_blank' method='post' style='display:none;' id='form1'></form>").attr({
action: url
}).appendTo(document.body);

for (var i in params) {
if (params.hasOwnProperty(i)) {
$('<input type="hidden" />').attr({
name: i,
value: params[i]
}).appendTo(f);
}
}

f.submit();

f.remove();
}

最佳答案

更新

由于您的项目没有服务器端代码。建议您将数据放入localstorage中,打开页面即可使用 $(document).ready(function(){ ###read data here from localstorgae### } )

隐私

根据您的描述,我知道问题的原因了。首先,因为您发送post请求打开网页并通过表单正文传输数据。那么你的后端程序需要处理这个请求。

解决方法如下。您可以下载my demo 。 (.Net Core 3.1)

Startup.cs

    public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
// Enable AllowSynchronousIO
services.Configure<IISServerOptions>(options =>
{
options.AllowSynchronousIO = true;
});
}

HomeController.cs

    public IActionResult Index()
{
StreamReader stream = new StreamReader(HttpContext.Request.Body);
string body = stream.ReadToEnd();
ViewData["id2"] = body;
return View();
}

Index.cshtml

@{
ViewData["Title"] = "Home Page";
}

<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://learn.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
<p>Test Data</p>
<p>@ViewData["id2"]</p>
</div>

并且您还需要在项目中添加一个类。

ReadableBodyStreamAttribute.cs

using Microsoft.AspNetCore.Authorization;
// For ASP.NET 3.1
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Filters;

namespace defaultPost
{
public class ReadableBodyStreamAttribute : AuthorizeAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext context)
{
// For ASP.NET 3.1
context.HttpContext.Request.EnableBuffering();
}
}
}

Mytest.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="Scripts/jquery.js"></script>
<title>Document</title>
</head>
<script type="text/javascript">
$(document).ready(function(){
const URL = 'https://panshubeiweb.azurewebsites.net/';
const _data = {
token: "54165165165"
};
openPostWindow(URL, _data);
})

function openPostWindow(url, params) {

var newWin = window.open(),
formStr = '';
formStr = '<form style="visibility:hidden;" method="POST" action="' + url + '">' +
'<input type="hidden" name="params" id="form2" value="' + params + '" />' +
'</form>';
newWin.document.body.innerHTML = formStr;
newWin.document.forms[0].submit();

return newWin;
}
</script>
<body>
</body>
</html>

My demo你可以从github下载并测试它。还需要根据业务对body字符串(string body = stream.ReadToEnd();)进行序列化。

enter image description here

关于javascript - 在新选项卡中打开 Azure Web 应用程序 URL,并将帖子数据作为标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62312030/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com