我无法在JavaFX WebView中登录谷歌。当我单击“下一步”按钮时,页面未加载。
不同网站上的其他登录也可以。
这是一个您可以运行的示例:
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Stage;
public class App extends Application
{
@Override
public void start(Stage primaryStage) throws Exception
{
WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();
webEngine.load("https://calendar.google.com");
StackPane root = new StackPane();
root.getChildren().add(browser);
primaryStage.setScene(new Scene(root, 600, 600));
primaryStage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
此处截图
简短版本:
在加载页面之前,将以下行添加到您的main方法中:
System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
长版本:
我的第一反应是JavaScript不起作用,但我测试了虚拟电子邮件并正确地得到了错误:
找不到你的Google帐户
因此,看起来一些JavaScript正在工作,但不是让用户继续输入密码的部分。我添加了以下侦听器来侦听控制台错误,我在这里发现了这些错误:
com.sun.javafx.webkit.WebConsoleListener.setDefaultListener(
(webView, message, lineNumber, sourceId) ->
System.out.println("Console: [" + sourceId + ":" + lineNumber + "] " + message)
);
这导致以下错误:
控制台:[null:0]XMLHttpRequest无法加载https://ssl.gstatic.com/accounts/static/_/js/blahblahblah
起源https://accounts.google.com访问控制允许源不允许。
这是一种称为同源策略的安全功能。它旨在阻止页面从潜在的恶意第三方网站加载脚本。
我搜索了“同源策略JavaFX”,发现以下问题可以解决您的问题。
具有修复和附加日志的完整应用程序是:
public class CalendarController extends Application
{
@Override
public void start(Stage primaryStage) throws Exception
{
WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();
com.sun.javafx.webkit.WebConsoleListener.setDefaultListener(
(webView, message, lineNumber, sourceId)-> System.out.println("Console: [" + sourceId + ":" + lineNumber + "] " + message)
);
webEngine.load("http://calendar.google.com");
StackPane root = new StackPane();
root.getChildren().add(browser);
primaryStage.setScene(new Scene(root, 600, 600));
primaryStage.show();
}
public static void main(String[] args)
{
System.setProperty("sun.net.http.allowRestrictedHeaders", "true");
launch(args);
}
}
问题内容: 我无法使用JavaFX WebView登录到Google。当我单击“下一步”按钮时,该页面无法加载。 在不同网站上的其他登录也可以正常工作。 这是您可以运行的示例: 屏幕截图在这里 问题答案: 精简版: 在加载页面之前,将以下行添加到您的main方法中: 长版: 我的第一个直觉是JavaScript无法正常工作,但是我测试了伪邮件并正确地得到了错误: 找不到您的Google帐户 因此,
我尝试使用这个简单的代码登录,但在我点击登录按钮后,else选项“无效用户名或密码!”总是出现,即使用户名和密码是匹配的 控制器:
每当我试图打开 致命错误:未捕获错误:调用C:\xampp\htdocs\wordpress\wp includes\wp db中未定义的函数mysql\u connect()。php:1668堆栈跟踪:#0 C:\xampp\htdocs\wordpress\wp includes\wp db。php(632):wpdb- 致命错误:未捕获错误:调用C:\xampp\htdocs\wordpre
错误描述:尝试登录时未显示任何内容。 我们输入用户(邮件)和密码,它试图登录,但什么也没发生。检查浏览器的控制台,但没有显示任何错误,甚至没有任何线索。 其他信息: PrestaShop版本:1.7.2 PHP版本:7.1.33 数据库客户端版本:libmysql-5.1.73 我们已经尝试过: > (!isset($this)- 在route/PROJECT_文件夹/classes/contro
我试图通过本地主机上的JDBC连接到我的数据库。通过windows身份验证连接没有问题,但是我想通过SQL身份验证连接。因此,我在数据库中创建了一个登录名和与该登录名对应的用户。我可以正常登录SSMS: 我的 JDBC 连接字符串: 抛出异常: 用户名和密码与登录SSMS时使用的相同。 这里我的类代码:
我一直在关注symfony网站上的教程(http://symfony.com/doc/current/security.html)为我的Symfony 3.1项目添加登录名。它可以与HTTP基本身份验证一起工作,但是当我使用这里的教程添加form_登录时(http://symfony.com/doc/current/security/form_login_setup.html)它会一直重定向到登录